Python学习_5_元组_字典

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-23 01:59:12
# tuple元祖# 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。# 元组写在小括号(())里,元素之间用逗号隔开。# 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。# 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:tup1 = ()    # 空元组tup2 = (20,) # 一个元素,需要在元素后添加逗号#作用:#对于一些数据我们不想被修改,可以使用元组;#另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。print(tup2)a = tuple()print(a)print(tup1)b = [1, 2, 3, 4]print(b[1:2])c = (1, 2, 3, 4)print(c[1:2])d = "j", "l"print(d[0:1])
 
# 字典# 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。# python对key进行哈希函数运算,根据计算的结果决定value的存储地址.# 所以字典具有两个特点:# 1.是无序存储的# 2.key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。# 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。# 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:# 字典当中的元素是通过键来存取的,而不是通过偏移存取。# 不可变类型:整形,字符串,元组,布尔值# 可变类型:列表,字典# 创建字典:2种方式# 方式1:直接用大括号创建并赋值给变量# dic = {} #创建一个空字典# print(dic)# dic1 = {"name":"mi", "age":"32"} #键值对,中间用冒号,左边是键右边是值,每组用逗号隔开# print(dic1)# 方式2:用dict# dic2 = dict({"name":"mi"})# print(dic2) #输出结果{'name': 'mi'}# dic3 = dict((("a","b"),))# print(dic3) #输出结果{'a': 'b'}# 字典的操作:# 1. 增加:# (1)通过给键赋值直接增加,如果键已存在则给键重新赋值# dic1 = {"name":"mi"}# dic1["age"] = 32# print(dic1)  # 输出结果{'name': 'mi', 'age': 32}# dic1["name"] = 32# print(dic1) # 输出结果{'name': 32}# (2)通过setdefault内置方法# (2.1)键存在,不改动值,并返回字典中键相对应的值# dic1 = {"name":"mi"}# ret = dic1.setdefault("name","yang")# print(dic1) # 输出结果{'name': 'mi'}# print(ret) #输出结果 mi# (2.2)键不存在,在字典中增加新的键值对,并返回相应的值# ret = dic1.setdefault("age",32)# print(dic1) #输出结果{'name': 'mi', 'age': 32}# print(ret) #输出结果 32# 2. 查:# (1)通过键查到值# dic1 = {"name": "mi","age":32}# print(dic1["name"]) #打印结果mi# print(dic1["age"])# (2)查所有的key,值,或者键值对# print(dic1.keys()) #打印结果dict_keys(['name', 'age'])# print(dic1.values()) #打印结果dict_values(['mi', 32])# print(dic1.items()) #打印结果dict_items([('name', 'mi'), ('age', 32)])# 注意查询出来的类型在python3中不是列表,可以转换成列表# list(dic1.keys())# 3.改:# (1)通过键改值# dic1 = {"name": "mi","age":32}# dic1["name"] = "yang"# print(dic1) #打印结果{'name': 'yang', 'age': 32}# (2)通过update内置方法,可以把一个字典添加到另一个字典中,如果有键相同,则替换相应的值# dic1 = {"name": "mi","age":32}# dic2 = {"hobby": "sleep"}# dic1.update(dic2)# print(dic1) #打印结果{'name': 'mi', 'age': 32, 'hobby': 'sleep'}# dic1 = {"name": "mi","age":32}# dic2 = {"age": 33}# dic1.update(dic2)# print(dic1) #打印结果{'name': 'mi', 'age': 33}# 4.删:# (1)del删除键值对# dic1 = {"name": "mi","age":32}# del dic1["name"]# print(dic1) #打印结果{'age': 32}# (2)clear清空列表# dic1 = {"name": "mi","age":32}# dic1.clear()# print(dic1) #打印结果{}# (3) pop通过键删除键值对,有返回值# dic1 = {"name": "mi","age":32}# a = dic1.pop("name")# print(a) #打印结果mi# print(dic1) #打印结果{'age': 32}# (4)popitem随机删除,并以元组方式返回值# dic1 = {"name": "mi","age":32}# a = dic1.popitem()# print(a,dic1) #打印结果('age', 32) {'name': 'mi'}# (5)del删除整个字典# dic1 = {"name": "mi","age":32}# del dic1# print(dic1)# 5.其他操作以及涉及到的方法# (1)创建字典的另一种方式 dict.fromkeys 两个参数,第一个列表里面每一个值作为键,后面一个参数是所有键的值# d1 = dict.fromkeys(["host1","host2","host3"],("mac"))# print(d1) #打印结果 {'host1': 'mac', 'host2': 'mac', 'host3': 'mac'}# (2)字典的嵌套# (3)字典的排序 用sorted函数,没有内部 .sort的方法# dic1 = {5:555,4:444,3:333}# print(sorted(dic1)) #对键进行排序,结果[3, 4, 5]# print(sorted(dic1.values())) #对值进行排序,结果[333, 444, 555]# print(sorted((dic1.items()))) 结果[(3, 333), (4, 444), (5, 555)] #也是根据键排序# (4)字典的遍历dic1 = {"name": "mi","age":32}#for i in dic1:    # print(i) # 循环遍历打印的是键,打印结果:    # name    # age    # print(i,dic1[i])# 此种方式打印键值对效率高,循环遍历打印的键和值,打印结果:    # name mi    # age 32# for i in dic1.items():    # print(i) #items是键值对,所以这样打印结果是键值对以元组的形式打印:    # ('name', 'mi')    # ('age', 32)#for i,v in dic1.items():    # print(i,v) #用两个变量接收,就可以去掉括号不以元组形式打印:    # name mi    # age 32
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!