1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python数据类型——字典表dictionary和元组tuple基本操作举例

python数据类型——字典表dictionary和元组tuple基本操作举例

时间:2023-07-31 10:05:39

相关推荐

python数据类型——字典表dictionary和元组tuple基本操作举例

python数据类型——字典表dict和元组tuple基本操作举例

* 字典表dict1. 字典表dict的声明* --------- ① 花括号{} 声明法* --------- ② dict函数声明法2. 字典表dict的操作* --------- ① 值的获取d['键']* --------- ② 字典的合并 d.update()* --------- ③ 删除某键值对 d.pop(‘键’)3. 字典表dict的属性* --------- ① 获得所有键.keys()* --------- ② 获得所有值.values()* --------- ③ 获得所有键值对.items()4. 字典表dict如何排序* --------- ① 将.keys()放入列表* --------- ② 使用全局函数.sorted()5. 字典表dict支持嵌套* 元组tuple1. 元组tuple的声明* --------- 一个元素元组的声明2. 元组的输出与list转换3. 元组的检索.index(val)与统计.count(val)4. namedtuple(‘名’,属性列表)总结刚开学,最近真的是超级忙🐶,上个周末好不容易休息,还熬夜看完了《侠探简不知》🤣,最喜欢那句“赵兄请把大家都召集起来吧,我要公布真相了”!被中国武侠版柯南的探案推理卡得死死的,当然很多不太符合现代现实的推理请勿喷,毕竟武侠,那是来无影去无踪刀如闪电御剑飞行。(⊙o⊙)…貌似有点走错片场,回头在我的豆瓣上详评✍️。

下面👇开启最近一节课的字典表与元组的基本操作吧!

* 字典表dict

字典的存储是键值对,类似于我们惯用的字典,可查找,可访问,但不支持原位改变。使用字典表的目的就是利用键来访问某个值。

1. 字典表dict的声明

* --------- ① 花括号{} 声明法

>>> d={"name":"carla","age":20,"job":"student"} # 字典的内容用花括号 >>> d["name"] #用中括号查询或调取数据'carla'>>> d.get('age')20>>> d.get('gender') # 这种方式不会报错,可以设置默认返回值>>> d.get('gender','female')'female'

形式:“键”:值

* --------- ② dict函数声明法

>>> somebody=dict(name='carla',age=20,job='student')>>> len(somebody) # 长度统计3

形式:通过dict构造函数来声明。注意这里键不用写引号,默认是字符串的处理方式,键与值用 “=” 连接。

2. 字典表dict的操作

* --------- ① 值的获取d[‘键’]

>>> somebody=dict(name='carla',age=20,job='student')>>> somebody['job']'student'

注:dict 用键访问,顺序是随机的。

* --------- ② 字典的合并 d.update()

>>> somebody=dict(name='carla',age=20,job='student')>>> fr={'from':'中国'} # 注意字典名和键的名不能一样>>> somebody.update(fr)>>> somebody{'name': 'carla', 'age': 20, 'job': 'student', 'from': '中国'}

当然,dict还可以通过以下👇方式补充:

>>> somebody{'name': 'carla', 'age': 20, 'job': 'student'}>>> somebody['from']='中国' # 不存在的键会自动insort,列表没有这个功能>>> somebody{'name': 'carla', 'age': 20, 'job': 'student', 'from': '中国'}

* --------- ③ 删除某键值对 d.pop(‘键’)

>>> somebody{'name': 'carla', 'age': 20, 'job': 'student', 'from': '中国'}>>> somebody.pop('from')'中国'>>> somebody{'name': 'carla', 'age': 20, 'job': 'student'}

3. 字典表dict的属性

* --------- ① 获得所有键.keys()

>>> somebody.keys()dict_keys(['name', 'age', 'job', 'from'])

输出键

for k in somebody.keys():print(k)for k in somebody.keys():print(k,end=',') # 也可以以自己设置的方式输出

运行结果:

nameagejobfromname,age,job,from,

* --------- ② 获得所有值.values()

>>> somebody.values()dict_values(['carla', 20, 'student', '中国'])

for k in somebody.values():print(k*2)

运行结果:

carlacarla# str型的value默认是两遍输出40 # 数值型的value默认的是int或float的数值运算studentstudent中国中国

* --------- ③ 获得所有键值对.items()

>>> somebody.items()dict_items([('name', 'carla'), ('age', 20), ('job', 'student'), ('from', '中国')])

利用占位符输出键值对

for k,v in somebody.items():print('{}=>{}'.format(k,v))

运行结果:

name=>carlaage=>20job=>studentfrom=>中国

或者直接利用占位符输出(不用for循环),输出结果与上方👆一样:

print('''name=>{}age=>{}job=>{}from=>{}'''.format(somebody.get('name'),somebody.get('age'),somebody.get('job'),somebody.get('from')))

4. 字典表dict如何排序

* --------- ① 将.keys()放入列表

注意:dict不支持原位改变,所以不能直接排序,我们可以借助列表list:

d={'d':4,'b':2,'c':3,'a':1}kd=d.keys()ks=list(kd)print(ks)# 直接输出ks.sort()# 对ks这个list进行排序处理print(ks)for k in ks:print(d.get(k)) # 输出键值k对应的dict的值

运行结果:

['d', 'b', 'c', 'a']['a', 'b', 'c', 'd']1234

* --------- ② 使用全局函数.sorted()

kd1=d.keys()# 注意并不是列表for k in sorted(kd1): # 调用sorted函数帮我们排序print(k,d.get(k))

输出结果:

a 1b 2c 3d 4

5. 字典表dict支持嵌套

somebody= {'name': {'first name': 'carla', 'last name': 'zhang'}, 'age': 20, 'job': 'student', 'from': '中国'}# 字典表的嵌套print(somebody['name']['last name'])

注意:字典表有嵌套时,检索的值时所匹配的键不止是一个。

* 元组tuple

元祖不支持原位改变,它有以下几个特征:

1. 元组tuple的声明

>>> 1,2 # 默认有括号(1, 2)>>> (1,2) (1, 2)>>> (1,2)+(3,4) # 生成新的元组(1, 2, 3, 4)

* --------- 一个元素元组的声明

>>> x=30>>> type(x) <class 'int'>>>> x=30, # 加一个逗号,‘,’,来声明元组>>> type(x)<class 'tuple'>

2. 元组的输出与list转换

>>> t=(1,2,3,4)>>> t[0]# 通过下标索引查找1>>> t[0]=9 # false 不支持原位改变

tuple支持推导:

t=(1,2,3,4)for k in t:print(k**2)new=[]for k in t:new.append(k**2) # 追加到新的list中print(new)new1=[k**3 for k in t] # 换一种方式print(new1)

运行结果:

14916[1, 4, 9, 16][1, 8, 27, 64]

3. 元组的检索.index(val)与统计.count(val)

>>> t=(1,2,'carla',2,4.0)>>> t.index(4.0) # 检索4.0 在哪个位置4>>> t.count(2) # 统计2这个元素在元组中出现的频数2

>>> t=(1,2,'carla',2,4.0)>>> t1=(18,23)>>> t2=t+t1 # 元组支持累加,产生新的元组>>> t2(1, 2, 'carla', 2, 4.0, 18, 23)

4. namedtuple(‘名’,属性列表)

实际开发的时候,描述一个具体的量时很少直接用列表或者单个的量,我们总是把它归纳到一个数据结构里面去。下面👇运行一个混合体:

from collections import namedtuple # 从集合的命名空间里导入新的模块STU = namedtuple('student',['name','age','grade','address']) # 给属性定义模板列表的方式,表示关注的内容carla = STU('carla',age=20,grade='大三',address="中关村") # 不用字典表写,可以直接用这个新命名的模板写print(carla.name,carla.age),print(carla.grade)

运行结果:

carla 20大三

这里可以看成是dict,tuple和class的一个混合体。

总结

1.01365 ≈ 37.78

每天进步一点点,成长足迹看得见!👣🍀🌈

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。