亚马逊网站开发设计,博罗县建设局网站,贵阳网络营销推广公司,wordpress更改域名后为什么这个基本的数据类型被称作字典呢#xff1f;这个是因为字典这种基本数据类型的一些行为和我们日常的查字典过程非常相似。
通过汉语字典查找汉字#xff0c;首先需要确定这个汉字的首字母#xff0c;然后再通过这个首字母找到我们所想要的汉字。这个过程其实就代表了…为什么这个基本的数据类型被称作字典呢这个是因为字典这种基本数据类型的一些行为和我们日常的查字典过程非常相似。
通过汉语字典查找汉字首先需要确定这个汉字的首字母然后再通过这个首字母找到我们所想要的汉字。这个过程其实就代表了字典的一个特性每一组汉字都有一个唯一的标识首字母。 对于 Python 中的字典来说它通常都有一个key表示字典的关键字。还有一个 value 表示关键字所代表的相应的数据的值。我们通常对字典做的最多的一个操作就是通过 key 关键字找到这个 key 所代表的 value 值。
1 字典的定义和创建
1.1 字典的定义
字典dictionary是Python中的一种可变的数据类型它用于存储键key和值value的映射关系。键必须是唯一的而值可以是任何数据类型。
1.2 字典的创建
1.2.1 使用花括号 {} 创建字典
在Python中您可以使用花括号 {} 来直接创建一个字典。字典的键和值之间使用冒号 : 分隔而不同的键值对之间使用逗号 , 分隔。
# 使用花括号 {} 创建字典
dict1 {name: Alice, age: 25, city: New York} 在这个例子中dict1 是一个包含三个键值对的字典name 对应 Aliceage 对应 25city 对应 New York。
1.2.2 使用 dict() 函数创建字典
除了使用花括号外还可以使用 dict() 函数来创建字典。dict() 函数接受一系列的键值对作为参数并返回一个新的字典。这些键值对通常是以关键字参数的形式传递的。
# 使用 dict() 函数创建字典
dict2 dict(nameBob, age30, cityLos Angeles)
print(dict2) # 结果{name: Bob, age: 30, city: Los Angeles}
1.3 字典的特性
键的唯一性字典的键必须是唯一的。如果您尝试添加具有相同键的键值对新值会覆盖旧值。键的类型键可以是任何不可变类型如整数、浮点数、字符串或元组只要元组中的元素也是不可变的。但列表、集合和其他可变类型不能用作字典的键。值的类型与键不同字典的值可以是任何Python对象包括可变类型如列表或字典。动态性字典是动态的这意味着您可以在创建字典后随时添加、删除或修改键值对。
2. 字典的常用操作
字典是Python中用于存储键值对的数据结构其常用操作包括
2.1 查看元素
2.1.1 使用字典的键key获取对应的值value
# 创建一个字典其中包含三个键值对
my_dict {apple: 1, banana: 2, cherry: 3} # 使用字典的键 apple 来获取对应的值
# 如果键存在则返回该键对应的值如果键不存在则会引发 KeyError 异常
value_of_apple my_dict[apple]
print(value_of_apple) # 输出: 1 try: # 尝试使用字典的键 orange 来获取对应的值 # 因为 orange 这个键在字典中不存在所以会引发 KeyError 异常 value_of_orange my_dict[orange]
except KeyError: # 当捕获到 KeyError 异常时执行此处的代码 print(键 orange 不存在于字典中。) value_of_orange None # 可以设置一个默认值
在这个例子中我添加了一个try-except块来捕获尝试访问不存在键时引发的KeyError异常。这样做可以帮助我们优雅地处理这种情况而不是让程序崩溃。
2.1.2 使用get()方法获取指定键的值
# 创建一个字典其中包含三个键值对
my_dict {apple: 1, banana: 2, cherry: 3} # 使用 get 方法来获取值
# 如果键存在则返回该键对应的值如果键不存在则返回 None或者指定的默认值
# 使用 get 方法不会引发异常
value_of_orange_get my_dict.get(orange)
print(value_of_orange_get) # 输出: None # 你也可以使用 get 方法来指定一个默认值当键不存在时返回这个默认值
value_of_orange_default my_dict.get(orange, 默认值)
print(value_of_orange_default) # 输出: 默认值
上例中使用get方法的第二个参数来指定一个默认值当键不存在时返回这个默认值。
在实际编程中通常推荐使用get方法来避免可能的异常特别是当你不确定一个键是否存在于字典中时。当然如果你确定键一定存在直接通过键访问也是可以的因为这会让代码更简洁。不过在涉及用户输入或不确定的数据源时使用get方法会更加安全。
2.2 修改元素
2.2.1 修改已存在的键值对
要修改Python字典中已存在的键值对你可以直接通过键来访问并重新赋值。这样原来的值就会被新的值所替换。
# 创建一个字典
my_dict {apple: 1, banana: 2, cherry: 3} # 打印原始字典
print(原始字典:, my_dict) # 原始字典: {apple: 1, banana: 2, cherry: 3} # 修改已存在的键值对
# 将 apple 对应的值从 1 修改为 10
my_dict[apple] 10 # 打印修改后的字典
print(修改后的字典:, my_dict) # 修改后的字典: {apple: 10, banana: 2, cherry: 3}2.2.2 修改一个不存在的键值对
注意如果您尝试修改一个不存在的键的值并且该键也不存在于字典中Python 不会像一些其他语言那样抛出一个错误。相反它会默默地添加这个新的键值对到字典中。
# 创建一个包含一些键值对的字典
my_dict {banana: 2, cherry: 3} # 修改已存在的键值对如果它存在的话
# 假设这里我们要修改键为 apple 的值但实际上这个键在初始字典中并不存在
my_dict[apple] 10 # 输出修改后的字典
print(my_dict) # 输出可能是: {banana: 2, cherry: 3, apple: 10}
如果您想要修改一个可能不存在的键的值并且希望在键不存在时避免添加新键您可以使用 dict.get() 方法结合条件判断来实现
# 假设我们想要修改键为 apple 的值但如果它不存在我们不想添加它
value my_dict.get(apple) # 尝试获取键 apple 的值如果不存在则返回 None
if value is not None: my_dict[apple] new_value # new_value 是您想要设置的新值
在这个例子中如果键 apple 不存在my_dict.get(apple) 将返回 None因此不会执行修改操作。如果键存在那么它的值将被更新为 new_value。
2.3 添加元素
如果key不存在通过 字典名 [key值] 值 的方式可以添加新的键值对。
# 添加一个新的键值对
my_dict[date] 2023-09-25
print(my_dict) # 输出: {apple: 10, banana: 2, cherry: 3, date: 2023-09-25}
2.4 删除元素
当使用Python字典时可以使用不同的方法来删除键值对或整个字典。
2.4.1 删除指定的键值对
使用 del 语句删除指定的键值对
# 创建一个字典
my_dict {apple: 1, banana: 2, cherry: 3} # 打印原始字典
print(原始字典:, my_dict) # 原始字典: {apple: 1, banana: 2, cherry: 3}# 删除指定的键值对
del my_dict[banana] # 打印修改后的字典
print(删除 banana 键值对后的字典:, my_dict)# 返回结果原始字典: {apple: 1, banana: 2, cherry: 3}
2.4.2 删除整个字典
使用 del 语句还可以删除整个字典。
# 创建一个字典
my_dict {apple: 1, banana: 2, cherry: 3} # 打印原始字典
print(原始字典:, my_dict) # 删除整个字典
del my_dict # 尝试打印字典将会引发NameError
try: print(删除后的字典:, my_dict)
except NameError: print(字典已被删除无法打印)
在这个例子中我们使用 del 语句删除了整个 my_dict 字典。之后尝试打印字典将会导致 NameError因为该字典已经被删除了。
请注意在删除字典或字典中的元素之后如果你尝试访问它们将会引发错误KeyError 对于键值对NameError 对于整个字典。因此在删除元素或字典后确保不再使用它们或者在使用前进行检查以避免错误。 2.4.3 删除并返回指定key的值
使用 pop 方法可以删除指定键的键值对并且返回了被删除的值。
# 创建一个字典
my_dict {apple: 1, banana: 2, cherry: 3} # 打印原始字典
print(原始字典:, my_dict)
# 返回原始字典: {apple: 1, banana: 2, cherry: 3} # 删除并返回指定key的值
removed_value my_dict.pop(apple) # 打印被删除的值和修改后的字典
print(被删除的值:, removed_value)
# 返回1
print(删除 apple 键值对后的字典:, my_dict)
# 返回删除 apple 键值对后的字典: {banana: 2, cherry: 3}
2.5 清空字典
使用 字典名.clear() 可以清空字典中的所有键值对。
my_dict {apple: 1, banana: 2, cherry: 3} # 清空字典
my_dict.clear()
print(my_dict) # 输出: {}
2.6 测量键值对的长度或个数
使用len(字典名)可以获取字典中键值对的个数。
my_dict {apple: 1, banana: 2, cherry: 3} # 获取字典的长度
length_of_dict len(my_dict)
print(length_of_dict) # 输出: 3
2.7 返回字典的键、值或键值对列表
2.7.1 获取字典中所有的键
使用字典名.keys()可以获取字典中所有的键。
# 创建一个新的字典
new_dict {a: 100, b: 200, c: 300} # 获取所有的键
keys new_dict.keys()
print(keys) # 输出: dict_keys([a, b, c])
.keys() 方法返回的是一个视图对象它显示了字典中所有的键。输出 dict_keys([a, b, c]) 表示这是一个键的视图包含了 a、b 和 c 这三个键。
2.7.2 获取字典中所有的值
使用字典名.values()可以获取字典中所有的值。
# 创建一个新的字典
new_dict {a: 100, b: 200, c: 300} # 获取所有的值
values new_dict.values()
print(values) # 输出: dict_values([100, 200, 300]) .values() 方法返回的是一个视图对象它显示了字典中所有的值。输出 dict_values([100, 200, 300]) 表示这是一个值的视图包含了 100、200 和 300 这三个值。
2.7.3 获取字典中所有的健值对
使用字典名.items()可以获取字典中所有的键值对以元组的形式存放在列表中。
# 创建一个新的字典
new_dict {a: 100, b: 200, c: 300} # 获取所有的键值对
items new_dict.items()
print(items) # 输出: dict_items([(a, 100), (b, 200), (c, 300)])
.items() 方法返回的是一个视图对象它显示了字典中所有的键值对。输出 dict_items([(a, 100), (b, 200), (c, 300)]) 表示这是一个键值对的视图包含了 (a, 100)、(b, 200) 和 (c, 300) 这三个键值对。
请注意这些视图对象keys、values 和 items是动态的它们会随着字典的改变而自动更新。但是它们不是列表因此如果你需要固定的列表形式可以使用 list() 函数将它们转换为列表
keys_list list(keys)
values_list list(values)
items_list list(items)
这样转换后你就可以得到一个静态的列表即使字典之后发生变化这个列表也不会自动更新。
2.8 字典的遍历
遍历字典的键for key in 字典名。
遍历字典的值for value in 字典名.values()。
同时遍历字典的键和值for key, value in 字典名.items()。
new_dict {a: 100, b: 200, c: 300}# 遍历字典的键
for key in new_dict:print(key,end,) # 返回a,b,c,# 遍历字典的值
for value in new_dict.values():print(value,end,) # 返回100,200,300,# 遍历字典的键值对并返回元组
for item in new_dict.items():print(item,end,) # 返回(a, 100),(b, 200),(c, 300),# 遍历字典的键值对并返回键和值
for key,value in new_dict.items():print(key,value,end,) # 返回a 100,b 200,c 300,
这些是字典的一些常用操作通过这些操作可以对字典进行增删改查等各种处理。