一、公共操作
(一)运算符
运算符 |
描述 |
支持的容器类型 |
+ |
合并 |
字符串,列表,元组 |
* |
复制 |
字符串,列表,元组 |
in |
是否存在 |
字符串,列表,元组,字典 |
not in |
是否不存在 |
字符串,列表,元组,字典 |
1、+合并
# 1、字符串
str1 = 'aa'
str2 = 'bb'
str3 = str1 + str2
print(str3)
# 2、列表
list1 = [1,2]
list2 = [10,20]
list3 = list1 + list2
print(list3)
# 3、元组
t1 = (1,2)
t2 = (10,20)
t3 = t1 + t2
print(t3)
------------------------------------
aabb
[1, 2, 10, 20]
(1, 2, 10, 20)
# 集合没有+
# 字典没有+
2、*复制
# 列表
list1 = [1,2,3,4,5]
list2 = list1*2
print(list2)
# 元组
t1 = (1,2,3,4,5)
t2 = t1*2
print(t2)
# 字符串
str1 = "ggasdf"
str2 = str1*2
print(str2)
------------------------------------
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
ggasdfggasdf
# 集合没有*
# 字典没有*
3、in与not in
# 1、字符串
print('a' in 'abcd')
print('a' not in 'abcd')
# 2、列表
list1 = ['a','b','c','d']
print('a' in list1)
print('a' not in list1)
# 3、元组
t1 = ('a','b','c','d')
print('a' in t1)
print('a' not in t1)
# 4、集合
set1 = {1,2,3,4,5,6,7}
print(1 in set1)
# 5、字典
dict1 = {"张三":18,"李四":19}
print(18 in dict1.values())
--------------------------
True
False
True
False
True
False
True
True
(二)公共方法
函数 |
描述 |
len() |
计算容器中元素个数 |
del 或 del() |
删除 |
max() |
返回容器中元素最大值 |
min() |
返回容器中元素最小值 |
range(start,end,step) |
生成从start到end的数字,步长为step,供for循环使用 |
enumerate() |
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。 |
sum() |
序列求和 |
zip() |
合并序列 |
1、len()
list1 = [1,2,3,4,5,6,8,9,10]
print(len(list1))
-------------------
9
2、del()
t1 = (1,2,3,4,5)
del t1
print(t1) # 报错
3、max()
list1 = [1,2,3,4,5,6,8,9,10,60]
list2 = ["a","z","x","d","j"]
print(max(list1))
print(max(list2))
print(min(list1))
print(min(list2))
----------------------------
60
z
1
a
4、enumerate()
list3 = ["张三","李四","王五","赵六"]
for index,data in enumerate(list3):
print(data)
print(index)
--------------------------
张三
0
李四
1
王五
2
赵六
3
5、sum()
list1 = [1,2,3,4,5,6,8,9,10,60]
print(sum(list1))
----------------------------
108
6、zip()
list4 = [1,2,3,4,5,6]
list5 = [8,9,10,60]
print(list(zip(list4,list5)))
-------------------------
[(1, 8), (2, 9), (3, 10), (4, 60)]
(三)容器类型转换
1、tuple()
list1 = [1,2,3,4,5,6]
s1 = {10,20,30,40,50}
print(tuple(list1))
print(tuple(s1))
--------------------------
(1, 2, 3, 4, 5, 6)
(50, 20, 40, 10, 30)
2、list()
t1 = ('a','b','c','d')
s1 = {10,20,30,40,50}
print(list(t1))
print(list(s1))
-----------------------------
['a', 'b', 'c', 'd']
[50, 20, 40, 10, 30]
3、set()
list1 = [1,2,3,4,5,6]
t1 = ('a','b','c','d')
print(set(list1))
print(set(t1))
--------------------------
{1, 2, 3, 4, 5, 6}
{'d', 'a', 'b', 'c'}
二、推导式
[表达式 for 变量 in 列表 if 条件]
{键:值 for 变量 in 字典 if 条件}
{表达式 for 变量 in 集合 if 条件}
(表达式 for 变量 in 元组 if 条件)
(一)列表推导式
- 用一个表达式创建一个有规律的列表或控制一个有规律列表。
- 创建一个空列表,追加1到10这几个数字
- for循环实现过程
list1 = []
for i in range(1,11):
list1.append(i)
print(list1)
---------------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list1 = [i for i in range(1,11)]
print(list1)
---------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 带if的列表推导式
- 将1到10的偶数添加到列表
- 方法一:利用步长实现
list1 = [i for i in range(0,11,2)]
print(list1)
--------------------------------
[0, 2, 4, 6, 8, 10]
list1 = [i for i in range(10) if i%2==0]
print(list1)
--------------------------------------
[0, 2, 4, 6, 8]
list1 = sum([i for i in range(1,301) if i%2==1 and i%7!=0])
print(list1)
---------------------------------
19413
(二)字典推导式
- 创建一个字典:字典key是1-5数字,value是这个数字的2次方
dict1 = {k:k**2 for k in range(1,6)}
print(dict1)
---------------------------
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
list1 = ['name','age','gender']
list2 = ['Tom',20,'man']
dict1 = {list1[i]:list2[i] for i in range(len(list1))}
print(dict1)
----------------------------------
{'name': 'Tom', 'age': 20, 'gender': 'man'}
computs = {'AUC':268,'HP':125,'DELL':201,'lenovo':199,'acer':99}
# 需求:提取上述电脑数量大于等于200的字典数据
count1 = {key:value for key,value in computs.items() if value>=200}
print(count1)
---------------------------------------
{'AUC': 268, 'DELL': 201}
(三)集合推导式
set1 = {i**2 for i in range(1,4)}
print(set1)
-----------------------------------
{1, 4, 9}
a = {x for x in "abracadabra" if x not in 'abc'}
print(a)
--------------------------------------
{'d', 'r'}
(四)元组推导式
a = (x for x in range(1,10))
print(a)
# 返回的是生成器对象
# <generator object <genexpr> at 0x0000026377564190>
# 使用tuple()函数,可以直接将生成器对象转换成元组
print(tuple(a))
-----------------------------------------
<generator object <genexpr> at 0x0000015913C24190>
(1, 2, 3, 4, 5, 6, 7, 8, 9)