编程语言
首页 > 编程语言> > python基础之五:dict 字典

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