python字典(dict)

目录

字典的定义:

结构:

其他类型转换成字典:

常见方法:

keys(获取字典里面使用的键,返回一个列表,列表内都是字典内的键):

values(获取字典里面所有的值,返回一个列表,列表内都是字典内的值)

items(获取字典里面所有的元素,返回一个元组,元组内都是字典内的元素)

get(根据键名得到相对于的值,如果没有返回Nome)

改:

删: 

pop(在原列表中根据键名删除某个元素并弹出这个值,如果没有找到则返回Nome):

扩展: 

len()(获取长度)

索引: 

 根据键添加、修改值:

 根据键名进行删除:

对字典嵌套里进行取值:


字典的定义:

英文为dict,由键(key)和值(value)成对组成,键和值中间以冒号:隔开,项之间用逗号隔开,整个字典由大括号{}括起来。

结构:

变量名={key(值):value(值)}

content_dict={'name':'小明','age':18}   #示例
字典的键有特殊要求: 必须是可哈希, int/bool/tuple/str,  不可以哈希的类型:list/dict!
简单说就是字典的键只能是整型、布尔类型、元组、字符串类型,不能是列表、字典类型!
dic = {123: 456, True: 999, "id": 1, "name": "你好", "age": 18, "stu": ['帅哥', "美女"], (1, 2, 3): "mht"}
print(dic[123])
print(dic[True])
print(dic["id"])
print(dic[(1, 2, 3)])

否则会报错 TypeError: unhashable type: 'list'

其他类型转换成字典:

其他类型转换成字典必须要有对应的键名和值。

1、使用嵌套列表,将要转换的键名和值都放在最里面的列表内,外层列表表示字典元素的个数。

v1=dict([['name','小明'],['age',19]])
print(v1)           #{'name': '小明', 'age': 19}

2、 和第一种类似,只是将内层的列表改成元组。

v1=dict([('name','小明'),('age',19)])
print(v1)           #{'name': '小明', 'age': 19}

平时使用第一种方法就可以了,第二种方法知道了解就行。 

常见方法:

keys(获取字典里面使用的键,返回一个列表,列表内都是字典内的键):

翻译为:钥匙

content_dict={'name':'小明','age':18,'height':180}
content_keys=content_dict.keys()        #将字典里面的键赋值给content_keys
print(content_keys)             #输出结果为dict_keys(['name', 'age', 'height'])

values(获取字典里面所有的值,返回一个列表,列表内都是字典内的值)

翻译为:价值观

content_dict={'name':'小明','age':18,'height':180}
content_value=content_dict.values()             #将字典里面的值赋值给content_value
print(content_value)             #输出结果为dict_values(['小明', 18, 180])

items(获取字典里面所有的元素,返回一个元组,元组内都是字典内的元素)

翻译为:项目

content_dict={'name':'小明','age':18,'height':180}
data=content_dict.items()               #将字典里面的元素赋值给data
print(data)         #输出结果为dict_items([('name', '小明'), ('age', 18), ('height', 180)])

get(根据键名得到相对于的值,如果没有返回Nome)

翻译为:得到

content_dict={'name':'小明','age':18,'height':180}
name=content_dict.get('name')
data1=content_dict.get('111',None)       #如果没找到时
data2=content_dict.get('111')       #省略后
print(name)         #输出结果为小明
print(data1)         #输出结果为Nome
print(data2)         #输出结果为Nome

 Nome在这里是可以省略的!

改:

通过索引 + 值 修改键的值。

content_dict={'name':'小明','age':18,'height':180}
content_dict['name']='小红'
print(content_dict)         #输出结果为{'name': '小红', 'age': 18, 'height': 180}

删: 

pop(在原列表中根据键名删除某个元素并弹出这个值,如果没有找到则返回Nome):

翻译为:枪击、爆声、流行乐曲。

content_dict={'name':'小明','age':18,'height':180}
content=content_dict.pop('name',None)   #删除键名和所对应的值,并将值赋值给content,如果没有找到,则将None赋值给content
data=content_dict.pop('18',None)        #如果没有的情况
print(content_dict)             #输出结果为{'age': 18, 'height': 180}
print(content)                  #输出结果为小明
print(data)                     #输出结果None

如果不加Nome的情况下,当没有找到时会报错KeyError: '键名'!

扩展: 

len()(获取长度)

content_dict={'name':'小明','age':18,'height':180}
print(len(content_dict))        #输出结果3

索引: 

字典的索引与其他的不同,字典的索引是通过键名的!

content_dict={'name':'小明','age':18,'height':180}
print(content_dict['name'])

 根据键添加、修改值:

如果字典里没有改键名,会自动添加键名和值。
如果字典里有该键名,则对对应的值进行修改
content_dict={'name':'小明','age':18,'height':180}
content_dict['money']=110           #如果字典里没有改键名,会自动添加键名和值
content_dict['name']='小红'          #如果字典里有该键名,则对对应的值进行修改
print(content_dict)                 #输出结果为{'name': '小红', 'age': 18, 'height': 180, 'money': 110}

 根据键名进行删除:

del(根据键名进行删除操作)

content_dict={'name':'小明','age':18,'height':180}
del content_dict['height']
print(content_dict)         #输出结果为{'name': '小明', 'age': 18}

如果没有找到该键名则会报错:KeyError: '键名'

对字典嵌套里进行取值:

content_dict={'name':'小明','age':18,'height':180,'names':['小红','小亮','小海']}
print(content_dict['names'])            #输出结果为['小红', '小亮', '小海']
print(content_dict['names'][0])         #输出结果为小红

 

你可能感兴趣的:(python,散列表,数据结构)