list产生方式:
1.直接赋值
2.list(可迭代对象)可迭代对象包括:字符串、元组、集合、range()等
range(起始数字,终止数字,数字间隔)产生数字序列
如果起始数字缺省,默认为0
必须包含终止数字
数字间隔缺省,默认为1
注意是不包括终止数字的
输出100内的偶数
# 注意range(100):是不包括100的
ans = []
# for i in range(0,101,2):
for i in range(100):
if i % 2 == 0:
ans.append(i)
print(ans)
列表的操作符
用 list1+lis2 的形式实现列表的拼接
a = [1, 2]
b = [3, 4]
a+b # 该用法用的不多
用 nlist 或 listn 实现列表的成倍复制
增加元素
列表.append(待增元素)末尾
列表.insert(位置编号,待增元素)
列表1.extend(列表2)加入列表中的元素
删除元素
ls.pop(序号)没有序号默认最后一个
ls.remove(元素)有多个删除第一个
查找元素的序号
ls.index(元素)
可以实现对元素的修改
cars[cars.index('TOYOTA')] = "qq"
列表的复制
错误方式:直接等于
正确方式:浅浅拷贝
列表.copy();
切片:列表[ : ]
列表的排序
元组打包与解包
def f1(x): # 返回x的平方和立方
return x**2, x**3 # 实现打包返回
print(f1(3))
print(type(f1(3))) # 元组类型
a, b = f1(3) # 实现解包赋值
print(a)
print(b)
numbers = [201901, 201902, 201903]
name = ["小明", "小红", "小强"]
for numbers,name in zip(numbers,name): # 每次取到一个元组,立刻进行解包赋值
print(a, name)
print(numbers)
print(name)
注意for中的局部变量会影响全局变量
numbers = [201901, 201902, 201903]
name = ["小明", "小红", "小强"]
for numbers,name in zip(numbers,name): # 每次取到一个元组,立刻进行解包赋值
print(numbers, name)
# 此时numbers变成list最后一个int元素无法迭代
# 说明for中的numbers改变全局的numbers
print(numbers)
list(zip(numbers,"小强"))
字典的键必须是不可变类型
字典.get(key,default)
从字典d中获取键key对应的值,如果没有这个键,则返回default