Python 内置函数(slice, set, round)

Python 有很多内置函数,灵活使用可以帮到大忙。

切片

当我们需要截取 list 或者获取其逆序时,切片是一个不错的帮手。

>>> l = [0, 1, 2, 3]
>>> l[:]
[0, 1, 2, 3]
>>> l[2:]
[2, 3]
>>> l[:3]
[0, 1, 2]
>>> l[1:3]
[1, 2]
>>> l[::-1]
[3, 2, 1, 0]
>>> l[-1:-2:-1]
[3]

语法即 r = l[i:j:s] 这里我们来解释下这几个参数含义:

字母 含义 描述
s 步长 缺省时为1
i 起始元素位置 当s>0,缺省时为0,当s<0,缺省时为-1
j 终止元素位置(不包含该元素,即[i, j)) 当s>0,缺省时为len(r),当s<0,缺省时为-len(r)-1


与之对应的就是内置函数 slice()

>>> myslice=slice(0,2)
>>> myslice
slice(0, 2, None)  # 分别对应 [i, j, s]
>>> l[myslice]
[0, 1]


集合运算

>>> before = [0, 1, 2]
>>> after = [1, 2, 3]
>>> print(list(set(before) & (set(after))))
[1, 2]
>>> list_union = list(set(before) | (set(after)))
>>> list_union
[0, 1, 2, 3]
>>> add_items = list(set(list_union) - (set(before)))
>>> add_items
[3]
>>> del_items = list(set(list_union) - (set(after)))
>>> del_items
[0]

由此我们得出了前后两个 list 详细差异。
set() 函数可以创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集(&)、差集(-)、并集(|)等。


浮点数精度控制

一般我们使用 round() 函数控制浮点数精度。

>>> round(1.1)
1
>>> round(1.12, 1)
1.1
>>> round(1.123, 2)
1.12

第一个参数是一个浮点数,第二个参数是保留的小数位数,可选,如果不写的话默认保留到整数。
如果对截取后的精确度有要求,参加以下链接:

Python 中关于 round 函数的小坑
Python 为什么不解决四舍五入(round)的“bug”?

猜你喜欢

转载自blog.csdn.net/woxiaohahaa/article/details/80068821