python中sort跟sorted有什么区别
时间: 2023-12-01 08:03:06 浏览: 77
`sort()`和`sorted()`都是Python中用于排序的函数,但是它们有一些重要的区别。
`sort()`函数是一个列表方法,它可以直接对原列表进行排序,而不是返回一个新的排序后的列表。`sort()`方法没有返回值,它只是把原来的列表改变了。
例如:
```python
list1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
list1.sort()
print(list1) # [1, 1, 2, 3, 4, 5, 5, 6, 9]
```
`sorted()`函数是一个内置函数,它可以对所有可迭代对象进行排序,包括列表、元组、字典、字符串等,并且返回一个新的排序后的列表,不改变原来的对象。`sorted()`函数需要传递一个可迭代对象作为参数。
例如:
```python
list1 = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_list = sorted(list1)
print(sorted_list) # [1, 1, 2, 3, 4, 5, 5, 6, 9]
print(list1) # [3, 1, 4, 1, 5, 9, 2, 6, 5]
```
因此,如果你要对一个列表进行排序并且不需要保留原有的列表,则使用`sort()`方法。如果你需要保留原有列表并且得到一个新的排序后的列表,则使用`sorted()`函数。
相关问题
python中sort和sorted方法有什么区别
Python中sort和sorted方法都可以用于对列表进行排序,但是它们的区别在于:
sort方法是在原地排序,也就是说排序后直接改变原来的列表,不会返回新的列表。而sorted方法是返回一个新的排序后的列表,原来的列表不会改变。
另外,sort方法默认按照升序排序,而sorted方法可以通过参数进行升序或降序排序。
下面是一个示例:
```
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
a.sort()
print(a) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
b = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
c = sorted(b, reverse=True)
print(b) # [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(c) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
可以看到,使用sort方法排序后,原来的列表a被改变了;而使用sorted方法排序后,原来的列表b没有变化,返回了一个新的列表c。同时,sorted方法可以通过reverse参数进行降序排序。
python中sort和sorted区别
sort是列表的方法,用于对原列表进行排序,会直接修改原列表,不会返回新的列表。sorted是内置函数,用于对可迭代对象进行排序,会返回一个新的列表,不会修改原可迭代对象。
举个例子,假设有一个列表a=[3,1,4,2],使用sort方法进行排序,代码如下:
```
a=[3,1,4,2]
a.sort()
print(a)
```
输出结果为[1,2,3,4],a的值也被修改为[1,2,3,4]。
如果使用sorted函数进行排序,代码如下:
```
a=[3,1,4,2]
b=sorted(a)
print(a)
print(b)
```
输出结果为[3,1,4,2]和[1,2,3,4],a的值没有被修改,而b是一个新的已排序的列表。
阅读全文