鱼C论坛

 找回密码
 立即注册
查看: 2411|回复: 0

[学习笔记] 序列-中

[复制链接]
发表于 2023-3-6 21:55:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> # list()、tuple() 和 str() 这三个 BIF 函数主要是实现列表、元组和字符串的转换。
>>> s = [1, 1, 2, 3, 5]
>>> min(s)
1
>>> t = "FishC"
>>> max(t)
's'
>>> min(1, 2, 3, 0, 6)
0
>>> max(1, 2, 3, 0, 6)
6

>>> # len()有个最大的可承受范围:
>>> len(range(2 ** 100))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C ssize_t
>>> # 这个错误是由于 len() 函数的参数太大导致的,我们知道 Python 为了执行的效率,它内部几乎都是用效率更高的 C 语言来实现的。
而这个 len() 函数为了让 Python 自带的数据结构可以走后门,它会直接读取 C 语言结构体里面对象的长度。
通常对于 32 位平台来说,这个最大的数值是 2**31 - 1;而对于 64 位平台来说,这个最大的数值是 2**63 - 1。
>>> s = [1, 0, 0, 8, 6]
>>> sum(s)
15
>>> sum(s, start=100)
115
>>> # sorted() 函数将重新排序 iterable 参数中的元素,并将结果返回一个新的列表:
>>> s = [1, 2, 3, 0, 6]
>>> sorted(s)
[0, 1, 2, 3, 6]
>>> sorted(s, reverse=True)
[6, 3, 2, 1, 0]
>>> s.sort(reverse=True)
>>> s
[6, 3, 2, 1, 0]
>>> t = ["FishC", "Apple", "Book", "Banana", "Pen"]
>>> sorted(t)
['Apple', 'Banana', 'Book', 'FishC', 'Pen']
>>> sorted(t, key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']
>>> # sorted(t, key=len) 这个,因为这个 key 参数,指定的是一个干预排序算法的函数 .比如这里我们指定为 len() 函数,那么 Python 在排序的过程中,就会先将列表中的每一个元素调用一次 len() 函数,然后比较的是 len() 返回的结果。
>>> # sorted(t, key=len) 比较的就是每个元素的长度。
>>> # reversed() 函数将返回参数的反向迭代器。
>>> s = [1, 2, 5, 8, 0]
>>> reversed(s)
<list_reverseiterator object at 0x01DAE3D0>
>>> list(reversed(s))
[0, 8, 5, 2, 1]
>>> # reversed() 函数也同样支持任何形式的可迭代对象:
>>> list(reversed("FishC"))
['C', 'h', 's', 'i', 'F']
>>> list(reversed((1, 2, 5, 9, 3)))
>>>[3, 9, 5, 2, 1]
>>> list(reversed(range(0, 10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表