Python5-字典
1、字典概述
1.1字典特性
(1)字典是无序的。
(2)字典是是以键值对的方式储存的,也就是以key:value的形式来储存的。
(3)字典的关键字是dict;
(4)字典的数据形式是{}。
1.2字典排序的规则
(1)如果是数字,默认是从小到大排序;
(2)如果是字符串,内部处理的思路是把字符串转为数字后再排序,和1的规则一样;
(3)如果是多个字符串,比如aa,ab,那么这个时候他的规则是:
A、aa和ab先比较第一个字符串,发现第一个相同,就比较第二个;
B、比较第二个,如果相同,依次如A的方法进行处理,当遇到不同的时候,就将字符串转为数字,然后在排序,规则与1相同。
(4)把字符串转为数字,使用的内部函数是sorted();
(5)字典排序使用到的内部函数是sorted();
(6)必须是相同的数据类型才能进行比较。
2、字典的方法
2.1输出字典中所有的key
2.1.1keys获取字典中全部key值
'''获取字典值'''
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
print(dict1.keys())
2.1.2for循环获取key值
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
for key,value in dict1.items():
print(key,'-',value)
2.2获取字典中全部value
2.2.1values直接获取全部value值
'''获取所有value值'''
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
print(dict1.values())
2.2.2for循环获取value值
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
for value in dict1.values():
print(value)
2.3获取某个value值
#获取某个value的值
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
# print(dict1.get('name'))
# print(dict1['name']) #常用写法
2.4字典增加键值对
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
dict1['address']='xian'
print(dict1)
2.5字典中value值修改
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
dict1['age']='18'
print(dict1)
2.6字典追加
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
dict2={'sex':'M'}
dict1.update(dict2)
print(dict1)
print(dict2)
2.7删除字典键值对
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
del dict1['address']
print(dict1)
2.8字典排序
2.8.1sorted排序
1、字典的排序使用的关键字是sorted() 2、dict1.item()针对字典进行循环输出key和value 3、在sorted内部,把key和value分别存储在不同的列表中 4、然后根据key=lambda item:item[0]来进行排序处理 A、根据索引来进行排序 B、把排序后的结果信息然后进行拼接 5、强制的转为字典的数据类型
dict1={'name':'qqq','age':'20','sex':'M','address':'xian'}
data1=dict(sorted(dict1.items(),key=lambda s:s[0]))
print(data1)
data1=dict(sorted(dict1.items(),key=lambda s:s[1]))
print(data1)
print(dict1.items())
这种方式,只能在新添加字典时使其有序,但无法对已存在的字典进行排序。
from collections import OrderedDict
data=OrderedDict()
data['age']=20
data['name']='eee'
data['sex']='M'
print(dict(data))
3.数据类型转换
3.1列表与字符串转换
str1='Go,Python,Java'
list1=str1.split(',')
print(list1,type(list1))
str2=','.join(list1)
print(str2,type(str2))
3.2列表与元祖
tuple1=('qq',)
tuple_list=list(tuple1)
print(tuple_list,type(tuple_list))
list_tuple=tuple(tuple_list)
print(list_tuple,type(list_tuple))
3.3列表与字典
list1=['Go','Python','Java']
list1_dict=dict(enumerate(list1))
print(list1_dict,type(list1_dict))
dict_list=list(list1_dict.items())
print(dict_list,type(dict_list))
3.4字符串与字典的转换
str1='Go,Python,Java'
str_dict=str1.split(',')
str_dict=dict(enumerate(str_dict))
print(str_dict,type(str_dict))