数据类型之可变/不可变
参看另外一篇文章
[数据类型之可变/不可变、可哈希/不可哈希]
逻辑运算/位运算/集合运算
逻辑运算:
a and b
逻辑与
a or b
逻辑或
not a
逻辑非
位运算:
a & b
位与
a | b
位或
a ^ b
位异或
集合运算:
a = set([1, 2, 3])
b = set([2, 3, 4)
a | b
a.union(b)
并 {1, 2, 3, 4}
a & b
a.intersection(b)
交 {2, 3}
a - b
a.difference(b)
差 {1}
a ^ b
a.symmetric_difference(b)
在其中一个 {1, 4}
a > b
严格超集
a >= b
a.issuperset(b)
非严格超集
a < b
子集
a <= b
a.issubset(b)
非严格子集
a == b
相等
逻辑判断
all(iterable) iterable对象全部为真时返回真,特别地,iterable对象为空时返回True
any(iterable) iterable对象中包含真,特别地,iterable对象为空时返回False
共享引用/非共享引用
a = b = [1, 2, 3]
共享引用
a = a + [4, 5]
–> a = [1, 2, 3, 4, 5]
b = [1, 2, 3]
a += [4, 5]
–> a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4, 5]
字符串处理函数
关于大小写的部分:
s.upper()
转大写
s.lower()
转小写
s.swapcase()
大小写互换
s.capitalize()
大小写互换
s.title()
每个单词的首字母大写
关于截取的部分:
s.ljust(width)/s.rjust(width)/s.center(width)
从左/右/中取,长度为width,不足的补空格
s.zfill(width)
从右取长度为width,不足的补0
关于查找/替换的部分:
s.find('substr', start, end)
指定开始位置和结束为止,查找substr
s.rfind('sub')
从右找起
s.count('sub')
统计出现次数
s.replace('old', 'new')
替换
关于开始/结束部分:
s.strip('s')/s.lstrip('s')/s.rstrip('s')
两端/左/右去除字符‘s’,默认去除多余空格或换行(\n)
s.startswith('s')/s.endswith('s')
是否以指定字符开始/结束
关于内容判断的部分:
s.isalnum()
是否全为字符(字母/数字)
s.isalpha()
是否为全字母(大写/小写)
s.isdigit()
是否全为数字
s.islower()/s.isupper()
是否为全小写/大写
列表解析
两个列表同时解析,使用zip():
>>> list_a = [1, 2, 3]
>>> list_b = [2, 3, 4]
>>> for i, j in zip(list_a, list_b):
... print(i + j)
...
3
5
7
>>> list(zip(list_a, list_b))
[(1, 2), (2, 3), (3, 4)]
>>> list_a = [1, 3]
>>> list(zip(list_a, list_b))
[(1, 2), (3, 3)]
zip()函数以前面一个列表为基准,前面一个列表的长度是zip()之后列表的长度
需要列表的下标,用enumerate():
>>> list_a = [1, 2, 3]
>>> for index, value in enumerate(list_a):
... print("index is %s, value is %s" %(index, value))
...
index is 0, value is 1
index is 1, value is 2
index is 2, value is 3