1. 列表推导
1.1 使用列表推导得到笛卡尔积
colors = ['white','black']
sizes = ['L','M','S']
t_shirt = [(color,size)for color in colors for size in sizes]
print(f"t_shirt={t_shirt}")
t_shirt=[('white', 'L'), ('white', 'M'), ('white', 'S'), ('black', 'L'), ('black', 'M'), ('black', 'S')]
1.2 过滤器的列表推导
symbol = "$¢£¥€¤"
list_0 = [ord(sym) for sym in symbol if ord(sym)> 163]
list_1 = [ord(sym) for sym in symbol]
print(f"list_0={list_0}")
print(f"list_1={list_1}")
1.3 列表和元组
列表是可变变量,而元组是不可变量,在进行变量相乘的时候,列表的ID地址不变,而元组的ID地址会变
l = [1,2,3]
print(f"l={l}")
print(f"id(l)_before={id(l)}")
l *=2
print(f"l={l}")
print(f"id(l)after={id(l)}")
t =(1,2,3)
print(f"t={t}")
print(f"id(t)before={id(t)}")
t*=2
print(f"t={t}")
print(f"id(t)after={id(t)}")
l=[1, 2, 3]
id(l)_before=139782399953568
l=[1, 2, 3, 1, 2, 3]
id(l)after=139782399953568
t=(1, 2, 3)
id(t)before=139782400381888
t=(1, 2, 3, 1, 2, 3)
id(t)after=139782521148368
2. 列表切片
- 为什么列表和区间在切片过程中需要忽略最后一个元素;
(1)当只有最后一个位置信息的时候,我们可以快速看出切片和区间里面有多少个元素 (2)当起始位置都可见的时候,我们可以快速的查看含多少个元素(end-start) (3)我们可以根据一个元素进行切割,将列表按照指定位置进行一分为二
my_list=[0,1,2,3,4,5,6]
print(f"my_list={my_list}")
print(f"my_list[:3]={my_list[:3]}")
print(f"my_list[3:]={my_list[3:]}")
print(f"my_list[1:4]={my_list[1:4]}")
|