一、前言
首先,不管学习什么数据类型,我们都带着以下几个问题展开学习:
#1:基本使用
1 、用途
2 、定义方式
3、常用操作+内置的方法
#2:该类型总结
1 、存一个值or存多个值, 只能存一个值 可以存多个值,值都可以是什么类型
2 、有序or无序
3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash
二、元组
#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),
#主要是用来读 定义:与列表类型比,只不过[]换成() age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取 #跟字符串,列表的取值一样,就不详细说了
#2、切片(顾头不顾尾,步长)
1 t=(1,2,3,4,5,6
)
2 print(t[1:4
])
3
4 #结果为 (2, 3, 4)
#3、长度
1 t=(1,2,3,4,5,6
)
2 print(len(t))
3
4 #结果为 6
#4、成员运算in和not in
1 t=(1,2,3,4,5,6
)
2 print((1)
in t)
3
4 #结果为 Ture #not in 就为Flase
#5、循环
1 t=(1,2,3,4,5,6
)
2
3 #不依靠索引循环
4 for i
in t:
5 print(i)
6
7 #依靠索引的两种循环
8 #for循环
9 for i
in range(len(t))
10 print(i)
11
12 #while 循环
13 n=
0
14 while Ture:
15 print(t[i])
16 n+=1
17
三、字典
#作用:存多个值,以key-value存取,取值速度快,每一个值都有对应的key
#定义:
{}内以逗号分割多个元素
key必须是不可变类型,value可以是任意类型
info={'name':'egon','age':18,'sex':'male'}
#本质info=dict({....}) 或 info=dict(name='egon',age=18,sex='male') 或 info=dict([['name','egon'],('age',18)]) 或 {}.fromkeys(('name','age','sex'),None)
#优先掌握的操作:
#1、按key存取值:可存可取
1 dic={
'name':
'duoduo'}
2 dic[
'age']=10
3 print(dic)
#值为{'name':'duoduo','age':10} 可存
4
5 dic[
'name']=
'qian'
6 print(dic)
#值为{'name':'qian','age':10} 可改
#2、长度len
1 dic={
'name':
'duoduo',
'age':18
}
2 print(len(dic))
3
4 #结果为 2
#3、成员运算in和not in (判断key存在)
1 dic={
'name':
'egon',
'age':18
}
2 print(
'name' in dic)
3
4 # 结果为 Ture
#4、删除
1 dic={
'name':
'duoduo',
'age':18
}
2 res=dic.pop(
'name')
#和列表不同的地方在后面加的参数
3 print(res)
#值为'duoduo'
4 print(dic)
#值为{'age':18}
5
6 # del dic['name']
7 # print(dic) 万能的删除
8
9
10 #res=dic.pop('qian',None) #这里的删除对象不再原来的字典
11 #print(res) #在后面添加None 就不会报错,返回值None
#5、键keys(),值values(),键值对items(),循环
#键keys()
dic={
'name':
'duoduo',
'age':18
}
print(dic.keys())
#值为dict_keys(['name', 'age'])
for key
in dic.keys():
#字典.keys()这个方法省略不写直接dic也可以
print(key)
#结果为 name age
#值values()
dic={
'name':
'duoduo',
'age':18
}
print(dic.values())
#值为dict_values(['duoduo', 18])
for values
in dic.values():
print(values)
#结果为 duoduo 18
#键值对items
dic={
'name':
'duoduo',
'age':18
}
print(dic.items())
#值为dict_items([('name', 'egon'), ('age', 18)])
for k,v
in dic.items():
#k,v=('name', 'duoduo')
print(k,v)
#掌握的知识:
1 dic={
'name':
'duoduo',
'age':18
}
2 print(dic.get(
'namexxxx'))
#没发现,输出None
3 print(dic[
'namexxxxxxxxxx'])
4 # 这个会报错 #小结:寻找到返回值,寻找不到返回None
5
6 print(dic.popitem())
#弹出末端的一组数据
7 print(dic)
#值为 {'name':'duoduo'}
8
9
10 dic.update({
'x':1,
'age':19
})
11 #对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖
12 print(dic)
#值为 {'name':'duoduo','age':19}
13
14
15 dic.fromkeys()
#创建新字典的种便捷方法
16 good_info=
{
17 'name':None,
18 'price':None,
19 'count':None
20 }
21 # 'mac' 20000 10
22 good_info[
'name']=
'mac'
23 print({}.fromkeys([
'name',
'age',
'sex'],None))
24 #值为{'name':None,'age':None,'sex':None}
25
26
27 #setdefaul的用处:
28 # 1、字典有中有key,则不修改,返回原key对应的原值
29 dic={
'name':
'duoduo',
'age':18
}
30 res=dic.setdefault(
'name',
'qian')
31 print(
'返回值',res)
#返回值 duoduo
32 print(dic)
#{'name':'duoduo','age':18}
33
34 # 2、没有对应的key,则添加,返回添加的key对应的value
35 dic={
'age':18
}
36 res=dic.setdefault(
'name',
'qian')
37 print(
'返回值',res)
#返回值 qian
38 print(dic)
#{'age': 18, 'name': 'qian'}
#总结
#1、存多个值 #2、无序 #3、可变
转载于:https://www.cnblogs.com/ManyQian/p/8617637.html
转载请注明原文地址: https://mac.8miu.com/read-66000.html