Python列表数据处理全攻略(五):常用内置方法轻松掌握

文章目录

  • 引言
  • Python列表常用内置方法
    • reversed()
      • 功能介绍
      • 语法
      • 示例代码
      • 注意事项
      • 总结
    • sorted()
      • 功能介绍
      • 语法
      • 示例代码
  • 结尾

引言

亲爱的读者,你好!Python的列表在数据结构中占据着核心地位,对于学习与应用Python来说,它无疑是我们不可或缺的得力助手。它不仅能帮助我们有效地存储和整理数据,还为我们提供了众多内置方法,让数据处理工作变得简单且高效。在这篇博客中,我们将一同深入探索Python列表的这些内置方法,从基础到进阶,助你全面掌握列表处理的核心技巧。让我们开始吧!

Python列表常用内置方法

reversed()

功能介绍

reversed() 是 Python 中的一个内置函数,用于对列表对象进行逆序操作。它会返回一个迭代器,迭代器中包含原列表中的元素,但顺序被反转。

语法

reversed(iterable)

示例代码

  1. 常规用法
words = ['hello', 'world']
for word in reversed(words):
    print(word)

代码运行结果如下:

world
hello
  1. 在列表中使用

由于 reversed() 返回的是迭代器对象,无法通过索引直接访问,示例如下:

numbers = [1, 2, 3, 4, 5]
reversed_numbers = reversed(numbers)
print("反转列表第{}个元素为: {}".format(0, reversed_numbers[0]))

运行代码后的报错如下:

Python列表数据处理全攻略(五):常用内置方法轻松掌握_第1张图片
如果我们想要用索引访问反转列表的元素,可以将list()reversed()搭配使用,代码如下:

numbers = [1, 2, 3, 4, 5]
reversed_numbers = list(reversed(numbers))
for i in range(len(numbers)):
    print("原列表第{}个元素为: {}, 反转列表第{}个元素为: {}".format(i, numbers[i], i, reversed_numbers[i]))

代码运行结果如下:

原列表第0个元素为: 1, 反转列表第0个元素为: 5
原列表第1个元素为: 2, 反转列表第1个元素为: 4
原列表第2个元素为: 3, 反转列表第2个元素为: 3
原列表第3个元素为: 4, 反转列表第3个元素为: 2
原列表第4个元素为: 5, 反转列表第4个元素为: 1

进程已结束,退出代码0
  1. 与 range() 搭配使用

由于range() 方法生成的也是可迭代对象,因此我们可以使用 range()reversed() 来生成一个逆序的数字序列:

for i in reversed(range(1, 6)):  # 生成 [1, 2, 3, 4, 5] 的逆序序列
    print(i)

代码运行结果如下:

5
4
3
2
1

当然,我将继续完成上一部分的内容。请注意,在最后一个示例中,我犯了一个错误,没有正确地展示如何使用 reversed() 来逆序字符串中的字符。以下是修正后的示例:

  1. 在字符串中使用

要逆序字符串中的字符,你可以先将字符串转换为列表,然后使用 reversed(),最后再将结果转换回字符串。或者,你可以使用 ''.join() 方法来连接逆序后的字符迭代器。以下是两种方法:

# 方法一:通过列表转换
text = 'Python'
reversed_text = ''.join(reversed(list(text)))
print(reversed_text)  # 输出:nohtyP

# 方法二:直接使用 ''.join()
text = 'Python'
reversed_text_direct = ''.join(reversed(text))
print(reversed_text_direct)  # 输出:nohtyP

代码运行结果如下:

nohtyP
nohtyP

进程已结束,退出代码0

在这两种方法中,第二种更为简洁和高效,因为它直接操作字符迭代器而无需额外的列表转换。

注意事项

  • reversed() 返回的是一个迭代器,而不是列表。如果你需要一个列表对象,你需要使用 list() 函数来转换它。
  • 迭代器只能遍历一次。如果你需要多次遍历逆序的元素,你应该将迭代器转换为列表或其他可多次遍历的数据结构。
  • 对于字符串,reversed() 返回的是字符的逆序迭代器。如果你想得到一个逆序的字符串,你需要使用 ''.join() 来将字符连接起来。
  • 逆序操作不会修改原始列表或字符串。它返回一个新的迭代器或字符串,表示原始数据的逆序视图。

总结

reversed() 函数是 Python 中用于获取列表等可迭代对象逆序结果的一个内置函数。它返回一个迭代器,其中包含原始数据的元素,但顺序相反。你可以通过遍历这个迭代器来处理逆序的元素,或者使用 list()''.join() 等函数将其转换为其他数据类型。在使用 reversed() 时,需要注意它返回的是迭代器而不是列表,以及迭代器的单次遍历特性。


sorted()

功能介绍

Python的sorted()函数是一个内置函数,可以对列表进行排序。这个函数返回一个新的已排序列表,不会改变原来的列表。排序方式默认为升序,但也可以通过参数进行降序排序。

语法

sorted(iterable, key=None, reverse=False)
  • iterable: 需要排序的可迭代对象。
  • key: 一个函数,用于指定排序依据,可以接受一个函数作为参数,返回一个用于排序的值。
  • reverse: 指定排序方式,True表示降序排序,False表示升序排序。

示例代码

  1. 默认排序(升序)
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

代码运行结果如下:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

进程已结束,退出代码0
  1. 根据字符串列表中字符串的长度降序排列
words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=len, reverse=True)
print(sorted_words)  # 输出:['banana', 'cherry', 'apple', 'date']

代码运行结果如下:

['banana', 'cherry', 'apple', 'date']

进程已结束,退出代码0
  1. 多级排序(先按长度升序,再按字母顺序降序)
mixed_words = ['Apple', 'banana', 'cherry', 'date', 'dog', 'elephant']
sorted_mixed_words = sorted(mixed_words, key=lambda x: len(x), reverse=True)
print("只按字符串长度排序结果如下:")
print(sorted_mixed_words)  # 输出: ['banana', 'Apple', 'cherry', 'date', 'dog', 'elephant']

mixed_words = ['Apple', 'banana', 'cherry', 'date', 'dog', 'elephant']
sorted_mixed_words = sorted(mixed_words, key=lambda x: (len(x), x), reverse=True)
print("先按长度升序,再按字母顺序降序的排序结果如下:")
print(sorted_mixed_words)  # 输出: ['banana', 'Apple', 'cherry', 'date', 'dog', 'elephant']

代码运行结果如下:

Python列表数据处理全攻略(五):常用内置方法轻松掌握_第2张图片


结尾

亲爱的读者,首先感谢抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见,因为这对我们来说意义非凡。

俗话说,当局者迷,旁观者清。的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。

如果您觉得我们的博文给您带来了启发,那么,希望能为我们点个免费的赞/关注您的支持和鼓励是我们持续创作的动力

请放心,我们会持续努力创作,并不断优化博文质量,只为给带来更佳的阅读体验。

再次感谢的阅读,愿我们共同成长,共享智慧的果实!

你可能感兴趣的:(Python基础,python)