sort和sorted函数的区别python

redmaomail 2024-10-22 11:38 阅读数 16 #建站与主机

红帽云邮外贸主机

网站搭建平台

 

sort() 和 sorted() 是 Python 中用于对列表进行排序的函数,它们有以下几个区别:

 

1. sort() 是列表的一个方法,它会直接在原列表上进行排序,而 sorted() 是一个内建函数,它会返回一个新的已排序列表,原列表不会被修改。

 

示例:

```python

# 使用 sort() 对列表排序

my_list = [3

1

4

2

5]

my_list.sort()

print(my_list) # 输出:[1

2

3

4

5]

 

# 使用 sorted() 返回已排序的新列表

my_list = [3

1

4

2

5]

new_list = sorted(my_list)

print(my_list) # 输出:[3

1

4

2

5]

print(new_list) # 输出:[1

2

3

4

5]

```

 

2. sort() 方法是就地排序,它不会返回任何值;而 sorted() 函数是非就地排序,它会返回一个新的已排序列表。

 

示例:

```python

# sort() 方法没有返回值

my_list = [3

1

4

2

5]

result = my_list.sort()

print(result) # 输出:None

 

# sorted() 函数返回一个新的已排序列表

my_list = [3

1

4

2

5]

new_list = sorted(my_list)

print(new_list) # 输出:[1

2

3

4

5]

```

 

3. sort() 方法只能用于可变的列表(list),而 sorted() 函数可以用于任何可迭代的对象。

 

示例:

```python

# sorted() 函数可以用于不可变的元组

my_tuple = (3

1

4

2

5)

new_tuple = sorted(my_tuple)

print(new_tuple) # 输出:[1

2

3

4

5]

 

# sort() 方法只能用于可变的列表

my_string = "hello"

my_string.sort() # 报错:AttributeError: 'str' object has no attribute 'sort'

```

 

总结:

sort() 和 sorted() 都可以用于排序,但是它们的用法和效果不同。如果你需要在原列表上就地排序,可以使用 sort() 方法;而如果你需要返回一个已排序的新列表,可以使用 sorted() 函数。另外,sorted() 还可以用于任何可迭代的对象,而 sort() 只能用于列表。


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:数据库学习入门 下一篇:jqhide
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机