元组是不可变数据类型
创建一个元组:
tuple1=(1,2,3,11,22,33)
元组也可以切片
如果元组不是一个空元组,那里边必须有逗号:
a=(10,)
元组的拆包
tuple1=(1,2)
a,b=tuple
print(a,b)
查看结果
1 2
如果有多个元素,可以使用*来拆包,一个字母代表一个,查表后的类型和再元组中的一样
加上星号则会取剩下的所有的,因此只能有一个星号,拆后会放在列表里。
tuple2=(1,2,3,4,5,6,7,8,9)
a,*b=tuple2
print(a,b)
1 [2, 3, 4, 5, 6, 7, 8, 9]
创建一个字典
dic={
} #创建一个空字典
dic1={
"key","value"} #创建一个字典
dic2={
"a":"1"
"b":"2"
"c":"3"
}
通过dict去创建列表
dic=dict("a"="1","b"="2")
通过key来获取value: dict[key] 如果key值不存在,就会报错
dict.get(key) 如果key不存在,会返回None
字典的长度是看键值对的个数
in和not in 是看key是否再字典中
字典的修改: dict[key]=xxx
字典添加键值对: dict.setdefault( key ,value ) ** 如果字典中已经存在key,则不会修改**
字典与字典合并: dict1.update(dict2) 把 dict2添加到dict1中
dict.popitem():随即删除一个键值对,一般是第一个
dict.pop(key):根据key来删除键值对
dict.clear():清空字典
li1=[2,212,1,132,13,[1,2,3]]
li2=[2,212,1,132,13,[1,2,3]]
li3=li1.copy()
print(id(li1),id(li2),id(li3))
print(id(li1[5]),id(li2[5]),id(li3[5]))
查看id
发现li1和li3中列表的id是相同的
2021412027840 2021412147136 2021412133696
2021410721536 2021412134784 2021410721536
在浅拷贝的时候,li1中的列表被创建,然后在,copy的时候直接被拿过去使用,而li2中的列表是重新创建的。
import copy
li1=[2,212,1,132,13,[1,2,3]]
li2=[2,212,1,132,13,[1,2,3]]
li3=copy.deepcopy(li1)
print(id(li1),id(li2),id(li3))
print(id(li1[5]),id(li2[5]),id(li3[5]))
深拷贝相当于全部更新创建
1473024277376 1473025409856 1473025410624
1473024280064 1473025410560 1473025409600
遍历字典
dict1={
"a":"1","b":"2","c":"3"}
for k in dict1.key(): #遍历key值
for v in dict1.value(): #遍历value值
作业1
a={
"name":"123","data":{
"result":[{
"src":"python1"},{
"src":"python2"},{
"src":"python3"}]}}
for i in range(3):
print(a["data"]["result"][i]["src"])
python1
python1
python1
第二题
li=[11,22,33,44,55,66,77,88,99,90]
li1=[]
li2=[]
for i in li:
if i >66:
li2.append(i)
else:
li1.append(i)
dic={
"a":li1,"b":li2}
print(dic)