公共操作
运算符
| 运算符 | 描述 | 支持的容器类型 |
|---|---|---|
| + | 合并 | 字符串,列表,元组 |
| * | 复制 | 字符串,列表,元组 |
| in | 是否存在 | 字符串,列表,元组,字典,集合 |
| not in | 是否不存在 | 字符串,列表,元组,字典,集合 |
"+" :合并
# 字符串
a = "abc"
b = "abc"
c = a + b
print(c)
# 列表
list1 = ["张三", "李四"]
list2 = ["王五", "赵六"]
list3 = list1 + list2
print(list3)
# 元组
tup1 = ("张三", "李四")
tup2 = ("王五", "赵六")
tup3 = tup1 + tup2
print(tup3)
" * " :复制
# 字符串
var1 = "abc"
print(var1 * 10)
# 列表
list1 = ["hello"]
print(list1 * 10)
# 元组
tup1 = ("hello",)
print(tup1 * 10)
in 和 not in
# 字符串
var1 = "abc"
print("a" in var1)
print("a" not in var1)
# 列表
list1 = ["a", "b", "c"]
print("a" in list1)
print("a" not in list1)
# 元组
tup1 = ("a", "b", "c")
print("a" in tup1)
print("a" not in tup1)
# 集合
set1 = {"a", "b", "c"}
print("a" in set1)
print("a" not in set1)
# 字典
dict1 = {"name": "张三", "age": 18}
print("name" in dict1)
print("name" not in dict1)
print("张三" in dict1.values())
print("张三" not in dict1.values())
公共方法
| 函数 | 描述 |
|---|---|
| len() | 计算容器中元素个数 |
| del 或 del() | 删除 |
| max() | 返回容器中元素最⼤值 |
| min() | 返回容器中元素最⼩值 |
| range(start,end, step) | ⽣成从start到end的数字,步⻓为 step,供for循环使⽤ |
| enumerate() | 函数⽤于将⼀个可遍历的数据对象(如列表、元组或字符串)组合为⼀个索引序列,同时列出数据和数据下标,⼀般⽤在 for 循环当中。 |
| sum() | 序列求和 |
| zip() | 合并系列 |
var1 = "abc"
list1 = ["a", "b", "c"]
tup1 = ("a", "b", "c")
set1 = {"a", "b", "c"}
dict1 = {"name": "张三", "age": 18}
# len(): 统计元素个数
print(len(var1))
print(len(list1))
print(len(tup1))
print(len(set1))
print(len(dict1))
# del 或 del()删除
# del var1
# del list1
# del set1
# del tup1
# del dict1
# max():取最大值
var1 = "1234"
list1 = [1, 2, 3, 4]
tup1 = (1, 2, 3, 4)
set1 = {1, 2, 3, 4}
print(max(var1))
print(max(list1))
print(max(tup1))
print(max(set1))
# min取最小值
print(min(var1))
print(min(list1))
print(min(tup1))
print(min(set1))
# sum():求和
print(sum(list1))
print(sum(tup1))
print(sum(set1))
# enumerate()
# 语法:enumerate(可遍历对象, start=0)
注:start参数⽤来设置遍历数据的下标的起始值,默认为0
list1 = [1, 2, 3, "张三", "李四"]
for i in enumerate(list1):
print(i)
for index, data in enumerate(list1):
print(f"下标是{index}, 对应的字符是{data}")
# zip()
list1 = ["name","age","sex"]
list2 = ["张三","18","男"]
list3=zip(list1,list2)
print(list3)
# >>> <zip object at 0x00000260240B5D80> 返回的是生成器对象
print(dict(list3))
# >>>{'name': '张三', 'age': '18', 'sex': '男'}
容器类型转换
列表、元组、集合可相互转换
tuple(): 将某个序列转换成元组
list1 = [10, 20, 30, 40, 50, 20]
s1 = {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))
list():将某个序列转换成列表**
t1 = ('a', 'b', 'c', 'd', 'e')
s1 = {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))
set():将某个序列转换成集合**
list1 = [10, 20, 30, 40, 50, 20]
t1 = ('a', 'b', 'c', 'd', 'e')
print(set(list1))
print(set(t1))
字典与其他容器的相互转换
dict1 = {"name": "张三", "age": 18, "sex": "男"}
list2 = list(dict1.items())
print(list2)
#>>>[('name', '张三'), ('age', 18), ('sex', '男')]
tup1 = tuple(dict1.items())
print(tup1)
#>>>(('name', '张三'), ('age', 18), ('sex', '男'))
set1 = set(dict1.items())
print(set1)
#>>>{('age', 18), ('sex', '男'), ('name', '张三')}
list2 = [('name', '张三'), ('age', 18), ('sex', '男')]
tup2 = (('name', '张三'), ('age', 18), ('sex', '男'))
set2 = {('name', '张三'), ('sex', '男'), ('age', 18)}
dict1 = dict(list2)
dict2 = dict(tup2)
dict3 = dict(set2)
print(dict1)
print(dict2)
print(dict3)
推导式
列表推导式
[表达式 for 变量 in 列表 if 条件]
创建一个空列表,追加1到10这几个数字
#for 循环实现
list1 = []
for i in range(1, 11):
list1.append(i)
print(list1)
# 推导式实现
list2 = [num for num in range(1, 11)]
print(list2)
带if的列表推导式
将1到10的偶数添加到列表
# 方法1
list1 = []
for i in range(1, 11):
if i % 2 == 0:
list1.append(i)
print(list1)
# 方法二
list1 = [num for num in range(2, 11, 2)]
print(list1)
# 方法三
list1 = [num for num in range(1, 11) if num % 2 == 0]
print(list1)
字典推导式
{健:值 for 变量 in 字典.items() if 条件}
创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅
dict1 = {i: i * i for i in range(1, 6)}
print(dict1)
将两个列表变为⼀个字典
list1 = ['name', 'age', 'sex']
list2 = ['Tom', 20, '男']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
提取字典中⽬标数据
computs = {'AUC': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
#需求:提取上述电脑数量⼤于等于200的字典数据
dict1 = {key: value for key, value in computs.items() if value >= 200}
print(dict1)
元组推导式
(表达式 for 变量 in 元组 if 条件)
tup1 = (x for x in range(1, 10))
print(tup1)
# >>><generator object <genexpr> at 0x000001587ECF4270>
# 返回的是生成器对象
# 使用tuple()
print(tuple(tup1))
print(tuple((x for x in range(1, 10))))
集合推导式
{表达式 for 变量 in 集合 if 条件}
# 计算数字 1,2,3 的平方数
set1 = {num ** 2 for num in range(1, 4)}
print(set1)
# 输出非abc的字母
var1 = 'abracadabra'
set1 = {a for a in var1 if a not in "abc"}
print(set1)