python进阶,在第一期的基础上做了极大的优化,整体更加美观易懂
十一、运算符和公共方法 (上)
内容较多(超过3000字),分为上下两个篇幅,此篇是上
11.1、运算符,支持容器类型
多个变量共同赋值,一一对应
str1, str2 = "abc", "def" # 字符串,等同于str1 = "abc", str2 = "def",一一对应,下文同理
list1, list2 = [1, 2], [3, 4] # 列表
t1, t2 = (11, 21), (31, 41) # tuple元组
set1, set2 = {10, 11}, {20, 21} # 集合
dict2 = {"name": "qao", "age": 99} # 字典
a、+: 合并,支持字符串,列表,元组
list1, list2 = [1, 2], [3, 4]
t1, t2 = (11, 21), (31, 41) # tuple元组
print(str1 + str2) # 结果:abcdef
print(t1 + t2) # 结果:报错,集合和字典不支持合并
b、* : 复制,支持字符串,列表,元组
t1 = (11, 21)
dict2 = {"name": "qao", "age": 99}
print(t1 * 3) # 结果:(11, 21, 11, 21, 11, 21) # 复制3次
print(dict2 * 4) # 报错:集合和字典不支持复制
11.2、字典的in和not in用法
c、in: 元素是否存在,支持字符串,列表,元组,字典,结果返回布尔型为True和False
str1 = "abc"
dict2 = {"name": "qao", "age": 99}
print("a" in str1) # 结果:True # 检测a是否在str1中
print("qao" in dict2) # 结果:False
d、not in: 元素是否不存在,支持字符串,列表,元组,字典,结果返回布尔型为True和False
str1 = "abc"
dict2 = {"name": "qao", "age": 99}
print("a" not in str1) # 结果:False # 检测a是否不在str1中
print("qao" not in dict2) # 结果:True
dict2 = {"name": "qao", "age": 99}
print("age" in dict2) # 结果:True
print(dict2["name"] in dict2.values()) # 结果:True
11.3、公共方法
a、len():计算容器中元素个数
t3 = (12, 22, 32, 42) # tuple元组
dict3 = {"xm": "guy", "age": 60, "id": 123456} # 字典
print(len(t3))
print(len(dict3)) # 打印键值对的个数
# 结果:
>>> 4
>>> 3
b、del或del(): 删除,有根据下标删除,没有下标根据k删除
str3 = "abcd" # 字符串
del set3 # 根据集合名称删除
print(set3)
# 结果:
>>> 列表不存在,会报错
list3 = [1, 2, 4, 6, 1] # 列表
del list3[2] # 根据下标删除,下标从0开始计数,所以删除的是4
print(list3)
# 结果:
>>> [1, 2, 6, 1]
dict3 = {"xm": "guy", "age": 60, "id": 123456} # 字典
del(dict3["xm"]) # 因为是按键值对存储,所以值也被删除(不记得的有关文章)
print(dict3)
# 结果:
>>> {'age': 60, 'id': 123456}
c、max(): 返回容器中元素最大值
d、min():返回容器中元素最小值
str3 = "abcd" # 字符串
print(max(str3))
print(min(str3)) # 英文大小的排序是按照字母的排序
# 结果:
>>> d
>>> a
set3 = {500, 400, 300, 200, 100} # 集合
print(max(set3))
print(min(set3))
# 结果:
>>> 500
>>> 100
dict3 = {"xm": "guy", "age": 60, "id": 123456} # 字典
print(max(dict3))
print(min(dict3))
# 结果:
>>> id
>>> age
e、range(start,end,step): 生成从start到end的数字,步长为step,供for循环使用
# 生成1到10中间的数字
for i in range(1, 11): # 包前不包后,步长不写,默认为1
print(i)
# 结果:
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> 6
>>> 7
>>> 8
>>> 9
>>> 10
for i in range(1, 11, 2): # 包前不包后,步长不写,默认为1(此处设置为2),步长就是增量
print(i)
# 结果:
>>> 1
>>> 3
>>> 5
>>> 7
>>> 9
for i in range(10): # 代表开始不写,默认从零开始,步长为1
print(i)
# 结果:
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> 6
>>> 7
>>> 8
>>> 9
f、enumerate(可遍历对象): 函数用于将一个可遍历的数据对象(如列表、元组或字符串)结合为一个索引序列 ,同时列出数据和数据下标,一般用于for循环当中,用于改变序列中序列下标的起始值
list3 = [1, 2, 4, 6, 1] # 列表
for i in enumerate(list3): # 返回的数据类型是元组,元组中第一个数字是序列中数字对应的下标,第二个数字是序列中的数字
print(i)
# 结果:
>>> (0, 1)
>>> (1, 2)
>>> (2, 6)
>>> (3, 1)
list3 = [1, 2, 4, 6, 1] # 列表
for i in enumerate(list3, start=2): # start设置下标的起始值
print(i)
# 结果:
>>> (2, 1)
>>> (3, 2)
>>> (4, 6)
>>> (5, 1)