在 Python 中,字典(Dictionary)是一种非常强大和灵活的数据结构。它以键值对(Key-Value Pair)的形式存储数据,类似于现实生活中的字典,通过查找单词(键)来获取其释义(值)。
一、字典的定义
字典可以使用花括号 {}
来创建,键和值之间用冒号 :
分隔,键值对之间用逗号 ,
分隔,dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
一个简单的字典实例:
dict_1 = {"name": "张三", "age": 16}
也可以用另一种方式来创建字典
dict_2 = dict([("name", "张三"), ("age", 15)])
创建空字典
使用大括号 { } 创建空字典:
# 使用大括号 {} 来创建空字典
d0 = {}
# 打印字典
print(d0 )
# 查看字典的数量
print("Length:", len(d0 ))
# 查看类型
print(type(d0 ))
代码运行结果如下:
访问字典里的值
把相应的键放入到方括号中,如下实例:
d1 = {'Name': '张三', 'Age': 18, 'grade': '优秀'}
print("tinydict['Name']: ", d1['Name'])
print("tinydict['Age']: ", d1['Age'])
以上实例运行结果如下:
如果用字典里没有的键来访问数据会报错。
还可以用for循环来遍历字典,以下为演示:
my_dict = {"name": "张三", "性别": "男" , "爱好": "唱跳"}
# 获取键
for k in my_dict.keys():
print(k, my_dict[k])
# 获取值
for v in my_dict.values():
print(v, my_dict)
# 获取键值对
for item in my_dict.items():
print(item)
# k, v分别是键和值
for k, v in my_dict.items():
print(k, v)
运行结果如下:
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
my_dict = {'Name': '张三', 'Age': 18, 'grade': '优秀'}
my_dict['Age'] = 18 # 更新 Age
my_dict['School'] = "哈尔冰佛学院" # 添加信息
print("tinydict['Age']: ", my_dict['Age'])
print("tinydict['School']: ", my_dict['grade'])
以下为运行结果:
-
字典的删除操作
可以使用 pop(key)
根据键删除指定的键值对,并返回被删除的值;使用 popitem()
随机删除并返回一个键值对。
deleted_value = dict_1.pop('city')
deleted_pair = dict_1.popitem()
字典内置函数&方法
Python字典包含了以下内置函数:
序号 | 函数及描述 | 实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 | >>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> len(tinydict) 3 |
2 | str(dict) 输出字典,可以打印的字符串表示。 | >>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> str(tinydict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}" |
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 | >>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> type(tinydict) <class 'dict'> |
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | dict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | dict.items() 以列表返回一个视图对象 |
7 | dict.keys() 返回一个视图对象 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | dict.values() 返回一个视图对象 |
11 | pop(key[,default]) 删除字典 key(键)所对应的值,返回被删除的值。 |
12 | popitem() 返回并删除字典中的最后一对键和值。 |
以下是对上面方法的详细介绍:
内置函数
-
len(dict)
len()
函数用于获取字典中键的数量。通过传入字典作为参数,它会返回字典中键值对的总数。例如对于tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
,使用len(tinydict)
可以得到 3。 -
str(dict)
str()
函数将字典转换为可打印的字符串形式。它会以字符串的形式展示字典的键值对内容。如您给出的示例,对于字典tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
,使用str(tinydict)
得到"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
。 -
type(variable)
type()
函数用于确定传入变量的数据类型。当传入的变量是字典时,它会返回<class 'dict'>
,用于判断变量的类型是否为字典。
内置方法
dict.clear()
此方法用于清空字典中的所有键值对,使字典变为一个空字典。
示例:
my_dict = {'a': 1, 'b': 2}
my_dict.clear()
print(my_dict)
输出: {}
dict.copy()
该方法创建并返回一个字典的浅复制。浅复制意味着新字典中的键值对与原字典相同,但如果字典的值是可变对象(如列表、字典等),则新字典和原字典中的这些可变对象会指向相同的内存地址。
示例:
original_dict = {'a': [1, 2, 3], 'b': 2}
copied_dict = original_dict.copy()
original_dict['a'].append(4)
print(copied_dict)
输出: {'a': [1, 2, 3, 4], 'b': 2}
dict.fromkeys()
它可以根据给定的序列(如列表、元组等)创建一个新的字典,其中序列中的元素作为新字典的键,并且可以指定所有键对应的初始值(如果没有指定,默认初始值为 None
)。
示例:
keys = ['a', 'b', 'c']
new_dict = dict.fromkeys(keys, 0)
print(new_dict)
输出: {'a': 0, 'b': 0, 'c': 0}
dict.get(key, default=None)
通过指定的键来获取对应的值,如果指定的键不存在于字典中,将返回您设置的默认值(默认情况下为 None
)。
示例:
my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a'))
print(my_dict.get('c', -1))
输出: 1
-1
key in dict
这是一个用于检查指定的键是否存在于字典中的操作符。如果键存在,返回 True
;否则,返回 False
。
示例:
my_dict = {'a': 1, 'b': 2}
print('a' in my_dict)
print('c' in my_dict)
输出: True
False
dict.items()
该方法返回一个包含字典中所有键值对的视图对象,您可以对这个视图对象进行迭代操作。
示例:
my_dict = {'a': 1, 'b': 2}
for key, value in my_dict.items():
print(f'Key: {key}, Value: {value}')
-
dict.keys()
返回一个包含字典所有键的视图对象。
示例:
my_dict = {'a': 1, 'b': 2}
for key in my_dict.keys():
print(key)
-
dict.setdefault(key, default=None)
如果指定的键存在于字典中,该方法返回对应的值;如果键不存在,它会将键和您指定的默认值添加到字典中,并返回该默认值。
示例:
my_dict = {'a': 1, 'b': 2}
print(my_dict.setdefault('a', 0))
print(my_dict.setdefault('c', 3))
print(my_dict)
输出: 1
3
{'a': 1, 'b': 2, 'c': 3}
-
dict.update(dict2)
将另一个字典
dict2
的键值对更新添加到当前字典中,如果存在相同的键,对应的值会被dict2
中的值覆盖。示例:
my_dict = {'a': 1, 'b': 2}
new_dict = {'b': 3, 'c': 4}
my_dict.update(new_dict)
print(my_dict)
输出: {'a': 1, 'b': 3, 'c': 4}
dict.values()
返回一个包含字典所有值的视图对象。
示例:
my_dict = {'a': 1, 'b': 2}
for value in my_dict.values():
print(value)
pop(key[,default])
根据指定的键删除并返回对应的键值对的值,如果键不存在且指定了默认值,返回默认值;如果键不存在且没有指定默认值,会引发 KeyError
错误。
示例:
my_dict = {'a': 1, 'b': 2}
print(my_dict.pop('a'))
输出: 1
popitem()
随机删除并返回字典中的一个键值对,如果字典为空,会引发 KeyError
错误。
my_dict = {'a': 1, 'b': 2}
print(my_dict.popitem())
输出: 一个键值对,例如 ('a', 1)
或 ('b', 2)
制作不易,请多多点赞。
标签:返回,Python,dict,奥秘,print,键值,my,字典 From: https://blog.csdn.net/weixin_61003764/article/details/140384633