Python 101: sort() vs sorted() in Python

In Python sort() vs sorted()

When sorting lists in Python, you can use either the sort() method or the sorted() function. Below is a detailed comparison of these two approaches, including code examples, tips, and warnings.

Comparison Table

Feature sort() Method sorted() Function
Modifies Original List Yes No
Returns None (modifies list in place) New sorted list
Usage Only for lists Works with any iterable
Syntax list.sort() sorted(iterable)

Code Examples

Using sort()

The sort() method sorts a list in place, meaning it modifies the original list and does not return a new list.

# Example list
my_list = [4, 2, 3, 1]

# Using sort()
my_list.sort()
print(my_list)  # Output: [1, 2, 3, 4]

Using sorted()

The sorted() function returns a new sorted list from the elements of any iterable.

# Example list
my_list = [4, 2, 3, 1]

# Using sorted()
sorted_list = sorted(my_list)
print(sorted_list)  # Output: [1, 2, 3, 4]

# Original list remains unchanged
print(my_list)  # Output: [4, 2, 3, 1]

Tips

  • Choosing Between sort() and sorted():
    • Use sort() if you need to sort a list in place and do not need to retain the original order.
    • Use sorted() if you need a sorted version of the iterable but also need to keep the original order intact.
  • Custom Sorting:
    • Both sort() and sorted() accept a key parameter for custom sorting. For example, sorting by the length of strings:
      my_list = ['apple', 'banana', 'cherry']
      my_list.sort(key=len)
      print(my_list)  # Output: ['apple', 'cherry', 'banana']
      

Warnings

  • Modifying Original List:
    • The sort() method modifies the original list. If you need to keep the original list unchanged, use sorted().
  • Performance Considerations:
    • For large datasets, consider the overhead of creating a new list with sorted() versus modifying the original list with sort().

Comments

One response to “Python 101: sort() vs sorted() in Python”

  1. admin Avatar

    sort() 和 sorted() 在 Python 中的区别
    在 Python 中排序列表时,可以使用 sort() 方法或 sorted() 函数。以下是这两种方法的详细比较,包括代码示例、提示和注意事项。

    sort() 方法
    sort() 方法用于就地排序列表,这意味着它会修改原列表,不会返回新列表。

    代码示例
    python
    Copy code
    # 示例列表
    my_list = [4, 2, 3, 1]

    # 使用 sort()
    my_list.sort()
    print(my_list) # 输出: [1, 2, 3, 4]
    特点
    修改原列表:是
    返回值:无(就地修改列表)
    用法:仅适用于列表
    语法:list.sort()
    sorted() 函数
    sorted() 函数返回一个新的排序列表,原可迭代对象保持不变。

    代码示例
    python
    Copy code
    # 示例列表
    my_list = [4, 2, 3, 1]

    # 使用 sorted()
    sorted_list = sorted(my_list)
    print(sorted_list) # 输出: [1, 2, 3, 4]

    # 原列表保持不变
    print(my_list) # 输出: [4, 2, 3, 1]
    特点
    修改原列表:否
    返回值:新的排序列表
    用法:适用于任何可迭代对象
    语法:sorted(iterable)
    提示
    选择 sort() 和 sorted():

    如果需要就地排序列表并且不需要保留原顺序,请使用 sort()。
    如果需要排序后的新列表且需要保留原顺序,请使用 sorted()。
    自定义排序:

    sort() 和 sorted() 都接受一个 key 参数用于自定义排序。例如,按字符串长度排序:
    python
    Copy code
    my_list = [‘apple’, ‘banana’, ‘cherry’]
    my_list.sort(key=len)
    print(my_list) # 输出: [‘apple’, ‘cherry’, ‘banana’]
    注意事项
    修改原列表:

    sort() 方法会修改原列表。如果需要保持原列表不变,请使用 sorted()。
    性能考虑:

    对于大型数据集,使用 sorted() 创建新列表的开销可能较大,而 sort() 则是就地修改原列表。
    通过了解 sort() 和 sorted() 之间的区别,可以根据具体使用情况选择最合适的方法。

Leave a Reply

Your email address will not be published. Required fields are marked *