目录
1.列表引导式
-
定义:使用简易方法,将可迭代对象转换为列表。
-
语法:
变量 = [表达式 for 变量 in 可迭代对象] 变量 = [表达式 for 变量 in 可迭代对象 if 条件]
# 将列表list01所有元素加1后存入列表list02
list01 = [5,56,6,7,7,8,9]
list02 = []
for item in list01:
list02.append(item+1)
print(list02)
# 重点来啦!!!
list01 = [5,56,6,7,7,8,9]
list02 = [item+1 for item in list01]
# -----------------------------------------------
# 将列表list01所有大于10的元素加1后存入列表list02
list01 = [5,56,6,7,7,8,9]
list02 = []
for item in list01:
if item>10:
list02.append(item+1)
print(list02)
# 重点来啦!!!
list01 = [5,56,6,7,7,8,9]
list02 = [item +1 for item in list01 if item>10]
print(list02)
练习:
# 练习
"""
使用range生成一个1-10之间的数字,将数字的平分存入list01中;将list01中的所有奇数存入list02中;将list01中的所有偶数存入list03中;将list01中所有大于5的偶数加+1后存入list04
"""
list01 = [item ** 2 for item in range(1, 11)]
list02 = [item for item in list01 if item % 2 == 1]
list03 = [item for item in list01 if item % 2 == 0]
list04 = [item + 1 for item in list01 if item > 5 and item%2 == 0]
print(list01)
print(list02)
print(list03)
print(list04)
2.元组 tuple
2.1定义
元组内存图(按需分配,不可变)
-
由一系列变量组成的不可变序列容器(元组与列表的区别就在于元组不可变而列表可变,列表会预留空间)
列表扩容原理:①列表都会预留空间;②当预留空间不足时,会再创建一个新列表(开一个更大的空间);③将原有数据拷贝到新列表中;④替换引用(原先的箭头变虚,画出新的实线箭头)
list01 = [] for i in range(4): list01.append((i + 1) * 10) print(list01) print(id(list01)) """输出结果: [10] 2062891914240 [10, 20] 2062891914240 [10, 20, 30] 2062891914240 [10, 20, 30, 40] 2062891914240 """ # 列表虽然发生变化,但是列表的id却没有变化,因为id指向的是表头
-
不可变是指一旦创建,不可以再添加/删除/修改元素
2.2基础操作
1.创建元组(创建之后不可变)
# 创建空元组
tuple01 = ()
# 等同于:tuple01 = tuple()
# 创建具有默认值的元组
tuple02 = (1,2,3)
# 列表 → 元组(灵活运用两种存储机制)
tuple03 = tuple(["a","b","c"])
# 元组 → 列表(灵活运用两种存储机制)
list01 = list(tuple02)
2.获取元素:元组切片后还是元组
可以直接将元组赋值给多个变量,列表也可行,但是一般用元组。
tuple01 = ("a","b","c","d")
# 索引
e01 = tuple01[1] # "b"
print(type(e01)) # "str"
# 切片
e02 = tuple01[-2:]
print(type(e02)) # "tuple"
# 直接把元组赋值给变量--------------------------------------
tuple02 = (100,200)
a,b = tuple02
print(a) # 100
print(b) # 200
tuple03 = (100,200,300)
a,b = tuple02
print(a) # 会报错
print(b) # 会报错
list02 = [100,200]
a,b=list02
print(a) # 100
print(b) # 200
3.遍历元素
tuple01 = (100,200)
# 正向
for item in tuple01:
print(item)
# 反向
for i in range(len(tuple01)-1,-1,-1):
print(tuple01[i])
2.3作用
-
元组与列表都可以存储一系列变量,由于列表会预留内存