一、元组类型
1、用途:元组是不可变的列表,能存多个值。如果多个值只有取的需求,而没有改的需求,那么用元组最合理,因为列表占用内存比较大
2、定义方式:在()内用逗号分隔开,能存放任意类型的值
强调:当元组中只有一个元素时,务必记住加一个逗号,如果不加逗号,这里默认变量是括号里的类型
3、常用操作+内置方法
1、按索引取值(正向取+反向取);只能取
2、切片(顾头不顾尾,步长)
3、长度
names=('alex','egon','wxx','lxx','cxxx')
print(len(names)) #5
4、成员运算in 和not in
5、循环
names=('aa','bb','cc','dd')
for item in names
print(item)
总结
1、可以存一个值or多个值
能存多个值,值可以是任意类型
2、有序or无序
有序
3、可变or不可变
不可变
列表可变的底层原理:
指的是:索引所对应的值的内存地址是可以改变的,但是列表的内存地址是不变的
元组不可变的底层原理:
指的是索引所对应的值的内存地址是不可以改变的
或者反过来说,只要是索引对应值的内存地址没有改变,那么元组始终是没有改变的
# t1=(['a','b','c'],'wc','office') # # print(id(t1[0])) #10158808 注:元组不变指的是只要索引对应的内存地址没有变,那么元组始终是没有改变的 # print(id(t1[1])) #6313760 # print(id(t1[2])) #10119168 #
二、字典类型
1、基本使用
1、用途:用来存多个值,但每一个值都有一个key与之对应,key对值有描述作用。一般用来存多个表示不同状态的值
2、定义方式:{}内用逗号分隔开多个元素,每个元素都是key:value的形式。
其中,value可以是任意数据类型,但是key必须为不可变类型,key通常时字符串类型
3、常用操作+内置方法
a、按key取值,可存可取
b、长度运算
c、成员运算in和not in
注:字典的成员运算比较的是key
d、删除
# d={'x':1,'y':2} # del d['x'] #通用的删除,列表等都能用 # print(d) # res=d.pop('y') #是有返回值的删除,其中返回值是删掉的元素中的value # print(d) #{'x': 1} # print(res) #2 # res=d.popitem() # # print(d) #因为字典是无序的,所以,是随机删除 # print(res) #返回值是删掉的那组元素,返回形式是元组('y', 2) # d={'a':1,'b':2,'c':3,'d':4} # for k in d: #取出key # print(k)
e、循环字典得到是字典的key
#6、循环 # msg_dic={ # 'apple':10, # 'tesla':100000, # 'mac':3000, # 'lenovo':30000, # 'chicken':10, # } # 只取key # for k in msg_dic: # print(k,msg_dic[k]) # for k in msg_dic.keys(): # print(k,msg_dic[k]) # 只取value # for v in msg_dic.values(): # print(v) #取key和value # for k,v in msg_dic.items(): #k,v=('apple', 10) # print(k,v)
f、
# d={'x':1,'y':2,'z':3}
# v=d.get('xxxx') #通过key将字典中的数据取出来,如果key不在字典内会返回None不会报错
# print(v)
# print(d['xxxxxxx']) #直接用d[key]形式如果key不在字典内,则会报错,
g、
# d={'x':1,'y':2,'z':3}
# d1={'a':1,'x':1111111}
# d.update(d1) #可以将d1的列表合入d中,其中,如果d中有的key,会将d1中的key的赋值给d的,
# # d中没有的会将,会将d1中的key:value放入d中
# print(d) #{'x': 1111111, 'y': 2, 'z': 3, 'a': 1}
h、
l=['name','age','sex']
d=dict.fromkeys(1,None) #{'name': None, 'age': None, 'sex': None}将列表快速初始化为字典
i、setdefault
1、如果字典中有setdefault指定的key,那么不改变key对应的值,返回原来字典中的value
2、如果字典中没有setdefault指定的key,那么在字典中增加一个key:value,返回新增的value
总结
1、存一个值or存多个值
可以存多个值,值都可以是任意类型,而key必须是不可变类型,通常时字符串类型
2、有序or无序
无序
3、可变or不可变
可变