元组tuple类型:
什么叫元组:不可变的列表,能存多个值,但多个值只有取的需求,而没有改的需求,那么用元组最合理
定义方式:在()内用逗号分隔开,可以存放任意类型值.有序,不可变
Names(“yf”,”fxc”,”hm)
强调:当元组内只有一个元素时,必须记住加一个逗号.不然成为字符串
常用操作+内置的方法:
按照索引取值(正向取+反向取):只能取
Names=(“yf”,”fxc”)
Names[0]
一个是搜索个数.count()
一个时搜索位置是否在.index()
names=("alex","egon","wxx","lxx","cxxx","lxx")
del names[0]
names[0]="sb" 会报错,因为不能改动元组元素
print(names.count("lxx"))
print(names.index("wxx",0,4))
names=("alex","egon","wxx","lxx","cxxx","lxx")
names=1不为改变元组
l=[1,243,3]
l=3333
l=["a","b","c"]
print(in(l[0]))
l[0]="A"
print(id(1[0]))
names=("a","b","c")
列表可变的底层原理:
指的时索引所对应的值的内存地址时可以改变的
元组不可变的底层原理
指的是索引所对应的值的内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组始终是没有改变的
tl=(["a","b","c"],"wc","office")
print(id(tl[0]))
print(id(tl[1]))
print(id(tl[2]))
tl[0][0]="AAA"
print(tl)
print(id(tl[0]))
字典类型:无序
# 字典类型,用来存多个值,但是每一个值都是由一个key与之对应,key对值由描述性的功能,
# 当存储多个值表示的不同的状态时,
#
# 定义方式{}内用逗号隔开多个元素,每一个元素都是key:value的形式
# value可以是任意数据类型,但是kry必须为不可变类型,key通常应该是字符串类型
# d={"x":1,"y":2} #d=dict({"x":1,"y":2})
#
# dict(a=1,b=2,c=3)造字典
四种循环方式:
msg_dic={
"apple":10,
"tesla":10000,
"mac":3000,
"lenovo":30000,
"chicken":10
}
for k in msg_dic:
print(k) #取Key
for i in msg_dic.keys():
print(i) #取key
for p in msg_dic.values():
print(p) #取values
for q,r in msg_dic.items():
print(q,r) #取key 与 values
字符串转化为字典形式并且key对应出现次数
s='hello alex alex say hello sb sb'
l=s.split()
d={}
for word in l:
if word not in d:
d[word]=1
else:
d[word]+=1
常用按键:
names=[]
for k in msg_dic:
names.append(k)
print(names)
values=[]
for k in msg_dic:
values.append(msg_dic[k])
print(values)
d={"x":1,"y":2,"z":3}
v=d.get("x") #取value不存在不报错,判断Key是否存在
res=d.setdefault("name","yf") #字典中含有输入的key("name")的时候不改任何值,如果没有key就增加,
#在print(res)中返回输入字典中的values值.
d1={"x":1,"n":10} #更新字典,内容都以更新的为主
d.update(d1)
print(d)
d=dict.fromkeys(["jg","sz"],None) #造字典,从[]里面取值为key,与后面的结合形成简约字典
print(d)