Python中,sort()是列表对象的内置方法,用于原地排序,直接修改原列表,不返回新列表。其语法为list.sort(key=None, reverse=False),其中key指定排序规则,如按字符串长度、对象属性等,reverse控制升序(默认)或降序,跟着小编一起详细了解下相关步骤。
python中sort函数怎么用?
在Python中,sort() 是列表(list)对象的内置方法,用于原地排序(直接修改原列表,不返回新列表)。以下是详细用法和示例:
基本语法
pythonlist.sort(key=None, reverse=False)
key(可选):指定排序规则的函数,默认为None(按元素自然顺序排序)。
reverse(可选):若为True,则降序排序;默认为False(升序)。
示例代码
1. 默认排序(升序)
pythonnumbers = [3, 1, 4, 1, 5, 9, 2]numbers.sort()print(numbers) # 输出: [1, 1, 2, 3, 4, 5, 9]
2. 降序排序
pythonnumbers.sort(reverse=True)print(numbers) # 输出: [9, 5, 4, 3, 2, 1, 1]
3. 通过key自定义排序规则
按字符串长度排序:
pythonwords = ["apple", "banana", "cherry", "date"]words.sort(key=lambda x: len(x))print(words) # 输出: ['date', 'apple', 'banana', 'cherry']
按对象的某个属性排序:
pythonstudents = [{"name": "Alice", "age": 25},{"name": "Bob", "age": 20},{"name": "Charlie", "age": 22}]students.sort(key=lambda x: x["age"])print(students)# 输出: [{'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}]
4. 注意:sort()是原地操作
pythona = [3, 1, 2]b = a.sort() # 错误!sort()返回None,b将为Noneprint(a) # 输出: [1, 2, 3]print(b) # 输出: None
与sorted()函数的区别
list.sort():原地修改列表,返回None。
sorted(list):返回新列表,原列表不变。
pythonoriginal = [3, 1, 2]new_list = sorted(original)print(original) # 输出: [3, 1, 2](原列表未变)print(new_list) # 输出: [1, 2, 3]
python分数怎么输入?
一、使用fractions模块
Python内置的fractions模块提供了一个Fraction类,用于表示有理数。可以使用这个模块轻松地输入和处理分数。
1. 导入fractions模块
首先,需要导入fractions模块:
from fractions import Fraction
2. 创建分数对象
可以通过传递字符串或两个整数来创建分数对象:
# 通过字符串
fraction1 = Fraction('3/4')
通过两个整数
fraction2 = Fraction(3, 4)
3. 操作分数
Fraction类支持基本的算术操作,包括加、减、乘、除:
# 加法
result_add = fraction1 + fraction2
减法
result_sub = fraction1 - fraction2
乘法
result_mul = fraction1 * fraction2
除法
result_div = fraction1 / fraction2
二、通过字符串解析
在某些情况下,可能需要从用户输入或其他来源解析字符串来创建分数。
1. 使用input函数获取用户输入
可以使用input函数获取用户输入的分数:
user_input = input("请输入一个分数(如3/4):")
fraction = Fraction(user_input)
2. 解析并验证输入
在解析用户输入时,建议进行验证,以确保输入格式正确:
def parse_fraction(input_str):
try:
return Fraction(input_str)
except ValueError:
print("输入格式错误,请输入正确的分数格式,如'3/4'")
return None
user_input = input("请输入一个分数(如3/4):")
fraction = parse_fraction(user_input)
三、手动输入数值
有时你可能希望直接使用浮点数或小数来表示分数。
1. 使用浮点数
可以将浮点数转换为分数:
decimal_number = 0.75
fraction = Fraction(decimal_number).limit_denominator()
2. 手动输入分子和分母
可以直接输入分子和分母来创建分数:
numerator = int(input("请输入分子:"))
denominator = int(input("请输入分母:"))
fraction = Fraction(numerator, denominator)
四、处理分数的其他技巧
1. 约简分数
Fraction类会自动约简分数。如果需要手动约简分数,可以使用limit_denominator方法:
fraction = Fraction(8, 12)
simplified_fraction = fraction.limit_denominator()
2. 比较分数
可以使用标准比较运算符来比较两个分数:
fraction1 = Fraction(1, 2)
fraction2 = Fraction(3, 4)
if fraction1 < fraction2:
print(f"{fraction1} 小于 {fraction2}")
else:
print(f"{fraction1} 大于或等于 {fraction2}")
3. 转换为小数
可以将分数转换为浮点数:
fraction = Fraction(3, 4)
decimal_value = float(fraction)
sort()适合直接修改原列表的场景,若需保留原列表,应使用sorted()函数生成新列表。通过key参数可灵活定义排序逻辑。注意sort()返回None,避免误赋值。合理选择排序方法能提升代码效率和可读性。