本文源自白璽,创自白璽。转载请标注出处。本文参与掘金日新计划【博客搬家】
Python数据类型
20 字典
20.1 字典的定义
Python中的字典类型是一种可变容器类型,用于存储键值对(key-value),其中每个键(key)必须是唯一的,而值(value)可以重复。字典类型用花括号 {} 来表示,每个键值对用冒号 : 分隔,多个键值对之间用逗号 , 分隔。
20.2 创建新字典
# 创建一个空字典
empty_dict = {}
# 创建一个包含键值对的字典
my_dict = {'name': '小明', 'age': 18, 'gender': '男'}
在上面的示例中,第一个字典是一个空字典,可以通过不断添加键值对的方式来填充它。第二个字典包含三个键值对,分别是姓名、年龄和性别。可以通过键来访问字典中的值,示例代码如下:
# 访问字典中的值
print(my_dict['name']) # 输出:小明
print(my_dict['age']) # 输出:18
print(my_dict['gender']) # 输出:男
20.3 创建包含列表的字典
字典中的值可以是任意类型的对象,例如数字、字符串、列表等。下面是一个包含列表的字典示例:
# 包含列表的字典
my_dict = {'name': '小明', 'scores': [80, 90, 95]}
print(my_dict['name']) # 输出:小明
print(my_dict['scores']) # 输出:[80, 90, 95]
20.4 修改和删除字典
可以通过修改键值对来修改字典中的值,也可以通过删除键值对来删除字典中的元素。示例代码如下:
# 修改字典中的值
my_dict['name'] = '小红'
print(my_dict['name']) # 输出:小红
# 删除字典中的元素
del my_dict['scores']
print(my_dict) # 输出:{'name': '小红'}
在上面的示例代码中,我们首先创建了一个名为 my_dict
的字典类型,其中包含了三个键值对。接着,我们通过访问键 apple
来输出字典中对应的值。然后,我们修改了键 apple
对应的值,并添加了一个新的键值对。最后,我们通过 del
关键字删除了键为 orange
的键值对,并通过 clear()
方法清空了整个字典。
需要注意的是,在字典类型中,键必须是不可变类型(如字符串、数字或元组等),而值可以是任意类型。当我们尝试访问不存在的键时,Python会抛出 KeyError
异常。可以使用 in
关键字来判断一个键是否存在于字典中。
20.5 代码示例集
知识点 | 代码示例 | 描述 |
---|---|---|
创建空字典 | d = {} 或 d = dict() | 创建一个空的字典 |
检查键是否存在 | 'name' in d 或 'email' not in d | 判断字典中是否存在某个键 |
获取所有键或值 | d.keys() 或 d.values() | 分别返回字典中所有的键或所有的值 |
获取键值对数量 | len(d) | 返回字典中键值对的数量 |
清空字典 | d.clear() | 删除字典中的所有键值对 |
复制字典 | new_d = d.copy() | 返回一个新的字典,包含原字典的所有键值对 |
使用fromkeys方法创建字典 | d = dict.fromkeys(keys, value) | 创建一个新字典,包含指定键列表和值 |
获取指定键的值 | d.get(key, default) | 返回指定键的值,如果键不存在,则返回默认值 |
删除指定键值对 | d.pop(key, default) | 删除指定键的键值对,返回该键的值。如果键不存在,则返回默认值 |
删除最后一个键值对 | d.popitem() | 删除字典中最后一个键值对,并返回该键值对 |
更新字典 | d.update(other) 或 d.update(key1=value1, key2=value2) | 将另一个字典或键值对列表添加到当前字典中,如果存在相同的键,则覆盖对应的值 |
将键值对转换为列表 | d.items() | 返回一个包含所有键值对的列表 |
将所有键转换为列表 | d.keys() | 返回一个包含所有键的列表 |
将所有值转换为列表 | d.values() | 返回一个包含所有值的列表 |
以上是关于Python字典类型的一些常见知识点和操作,可以帮助开发者更好地理解和使用字典类型。
21 集合类型
21.1 集合类型的定义
ython的集合类型是set,它是一种无序且元素不可重复的数据结构。可以通过花括号{}或set()函数来创建一个集合对象。
# 使用大括号创建集合
my_set = {1, 2, 3, 4, 5}
# 使用set()函数创建集合
my_set = set([1, 2, 3, 4, 5])
# 添加元素到集合中
my_set.add(6)
# 删除集合中的元素
my_set.remove(5)
# 判断元素是否在集合中
print(3 in my_set) # 输出 True
# 集合之间的运算
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union_set = set1.union(set2) # 并集
intersection_set = set1.intersection(set2) # 交集
difference_set = set1.difference(set2) # 差集
# 遍历集合
for item in my_set:
print(item)
21.2 案例
假设你要统计一篇文章中不同的单词数量,可以将每个单词都添加到一个集合中,因为集合中不允许有重复的元素。代码如下:
pythonCopy code
article = "这是一篇关于Python的文章,文章中包含了很多Python相关的知识点和代码。"
word_set = set(article.split()) # 将文章中的单词转化为集合
print(len(word_set)) # 输出集合的长度,即不同单词的数量
输出结果为:10,即这篇文章中有10个不同的单词。
22 布尔类型
22.1 布尔类型的定义
Python中的布尔类型只有两个取值:True和False,分别表示真和假。可以用关键字True和False直接定义布尔类型变量,也可以使用逻辑运算符将其他类型的数据转换为布尔类型。
22.2 案例
x = True
y = False
print(x) # 输出True
print(y) # 输出False
a = 10
b = 20
c = a < b
print(c) # 输出True
d = bool("")
e = bool("hello")
print(d) # 输出False
print(e) # 输出True
在第一个示例中,我们直接定义了两个布尔类型变量x和y,并使用print函数输出它们的值。
在第二个示例中,我们使用比较运算符(<)将a和b进行比较,将比较结果赋值给变量c,c的类型就是布尔类型。
在第三个示例中,我们使用bool函数将空字符串和非空字符串转换为布尔类型。bool函数的返回值是True或False。
总之,布尔类型在Python中常常用于条件判断,例如if语句、while语句等等。
23 None类型
23.1 None类型的定义
None类型在Python中表示一个特殊的空值,通常用于表示一个函数没有返回值或变量没有被赋值。
def print_hello():
print("Hello World")
result = print_hello()
print(result) # 输出 None
在这个例子中,函数 print_hello
没有返回值,因此调用该函数时会返回 None
。因为在函数调用后我们将返回值赋值给了变量 result
,所以当我们打印 result
时,输出结果为 None
。
另一个常见的应用是初始化一个变量,但还不知道变量的具体值是什么。在这种情况下,可以将变量初始化为 None
,并在稍后更新它的值,如下所示:
x = None
if some_condition:
x = 42
else:
x = 0
print(x) # 输出 42 或 0
在这个例子中,我们首先将变量 x
初始化为 None
。然后,根据某个条件,我们在 if-else 语句中更新变量 x
的值。最后,我们打印变量 x
的值。如果条件为真,输出结果将为 42
,否则为 0
。
本文是结合ChatGPT的答案总结的知识点,有不足之处请大佬们给出反馈。