python基础之五:dict 字典
作者:互联网
1、数据类型的划分:可变数据类型、不可变数据类型
不可变的有:元组(tuple)、字符(str)、整型(int)、布尔型(bool) 它们都可以哈希
可变的:列表(list)、set、字典(dict) 不能hash
2、字典中,key必须是不可变数据类型,即tuple,str,int,bool
value可以是任意类型;
优点:采用二分法查找,速度快;
存储大量的关系型数据,32位python可以存上亿的字符,64位更是大的无边!
特点:无序的
3、字典的具体例子
1 dic = {'name': ['keery', 'tom', 'jack'], 2 'gender': ['male', 'female'], 3 'num': [2, 4, 6, 19, 199], 4 True: 1, 5 ('1', '2'): "yes your are tuple", 6 2: 'you are int' 7 } 8 print(dic)View Code
4、对字典的操作
1 '''增''' 2 # 方法一: 3 dic['city'] = ['wuhan', 'suzhou', 'Newyork'] # 特点:没有该键则是无序插入,有该key就变成覆盖了,即修改! 4 print(dic) 5 # 方法二: 6 dic.setdefault('address') # 如果字典中没有该键,就单独插入键,值默认是None 7 dic.setdefault('city') # 如果有则,不做任何改变 8 dic.setdefault('mobil', '13871027058') 9 print(dic) 10 11 '''删''' 12 # 方法一: 13 print(dic.pop('mobil')) # 有返回值,返回key对应的value 14 print(dic.pop('ta', '没有该键!')) # 如果没有该键,可以设置返回提示 15 16 # 方法二:del 17 del dic['address'] # 删除单个键值对 18 # del dic # 清空字典,等同clear 19 # dic.clear() 20 21 # 方法三:不建议使用,随机删除 22 print(dic.popitem()) # 返回元组,里面是键和值 23 24 '''改''' 25 # 方法一: 26 dic['name'] = {'tommy'} 27 # 方法二:update 28 dic1 = {'name':['tom', 'jack', 'jane'], 29 22: 'wo are int too' 30 } 31 dic2 = {'name': 'jane', 32 'num': [2, 4, 6, 19, 199], 33 True: 1, 34 } 35 print(dic1) 36 dic1.update(dic2) # dic1加入dic2中自己没有的元素,并且修改有相同键的值与dic2保持一致 37 print(dic1) 38 39 '''查''' 40 print(dic2['name']) # 如果该键没有,则会报错 41 print(dic2.keys(), type(dic2.keys())) # 类型虽然是dict_keys,其实就是列表 42 print(dic2.values()) 43 print(dic2.items()) 44 # 遍历 45 for i in dic2: # 就是遍历keys 46 print(i) 47 for i in dic2.keys(): # 等同上面的,所以可以不用加keys 48 print(i) 49 for i in dic2.items(): # 出现的是元组,里面是key和value 50 print(i)View Code
5、相关面试题
1 # 可以赋值 2 a, b = 1, 2 3 ''' 4 面试题:a = 1, b = 2 如何用一行代码,让两个变量互换值 5 ''' 6 a = 1 7 b = 2 8 a, b = b, a 9 print(a, b) 10 11 # 类似可以延申,只要变量个数与后面的值的个数是相等的即可 12 c, d = [1, 2] 13 print(c, d) 14 e, f = [1, 2, ], [6, 7] 15 print(e, f) 16 # 于是可以如此遍历 17 for k, v in dic2.items(): 18 print(k, v) 19 20 # 最后写推荐的查询方法 get 有返回值,不报错 21 print(dic2.get('name1', '没有对应的键!'))View Code
6、字典的嵌套
1 dic = {'name': ['keery', 'tom', 'jack'], 2 'gender': ['male', 'female'], 3 'num': { 4 'numric' : [2, 4, 6, 19, 199], 5 'address' : 'wuhan', 6 } 7 } 8 9 # 建议用get取查询,有返回值,不报错 10 print(dic.get('name', None)[0]) 11 dic.get('num', None).setdefault('city', ['New York', 'Capiton']) 12 print(dic) 13 dic.get('gender', None).append('Unkown') 14 print(dic) 15 16 # 不建议的查询方法 17 dic['gender'] = 'female' 18 print(dic)View Code
7、补充字符以及列表相关的面试题:
计算用户输入的内容中有几个整数。如:content=input('请输入内容:') #fhjwew22288s8sd2223
要求,数字连起来的算一个整数,即222288、8、2223
1 ''' 2 思路:循环内容时,如果碰见字母,用空格替换,最后会变成: 222888 2223 3 然后使用split(),形成一个数组,就可以知道有多少个数了! 4 ''' 5 content = input('请输入内容>>>>>>>>>:') 6 7 for i in content: 8 if i.isalpha(): 9 content = content.replace(i, " ") # 如果没有赋值给content,永远无法实现要求! 10 con_num_li = content.split() 11 print(con_num_li) 12 print('您输入的内容中有{0}个整数'.format(len(con_num_li)))View Code
标签:name,python,dic,content,dic2,num,dict,之五,print 来源: https://www.cnblogs.com/funyou/p/11908687.html