这三个都是Python中不同类型的数据结构。这用于存储不同的数据集合。根据我们要求的用例,我们需要在其中进行选择。
字典(dict):
- 字典是键值对的集合,其中每个键与一个值关联
- 可以根据键值检索数据(基于键的搜索),因为键要求是唯一的。
- 字典在 3.7 之前都是无序的,值可以更改。密钥名称不能直接更改
语法:
库存= {‘苹果‘:20,’香蕉’:30,’胡萝卜’:15,’牛奶’:15}
print(‘t1.库存物品‘, inventory)
可以使用以下语法添加另一个值/修改现有键的值
库存[‘鸡蛋’] = 20
库存[‘面包’] = 25
print(‘t2.更新的库存物品’, inventory)
库存[‘鸡蛋’]=库存[‘鸡蛋’]+5
print(‘t3.补货后’, 库存)
- 可以使用 del 关键字从 dict 中删除数据。
- 可以使用 in 关键字检查数据是否存在。结果将为布尔值。
删除库存[‘胡萝卜’]
del 库存[‘面包’]
print(‘t4.删除后更新库存’, inventory)
is_bananas_in_inventory = 库存中的“香蕉”
print(‘t5a.库存中有香蕉吗’, is_bananas_in_inventory)
is_oranges_in_inventory = 库存中有’橙色’
print(‘t5b.库存中是否有橙色’, is_oranges_in_inventory)
备注:
另外 dict.items() 会将字典中的每个项目作为元组(如键值对)给出。通过使用 list(dict.items()) 我们还可以获取列表形式的数据。使用 for 循环和 if 条件,我们可以访问特定的键并对该数据执行所需的操作
1
2
3
4
5
6
7
8
9
10
11
|
for product, product_count in inventory.items():
print ( '\t\t6. product:' , product, 'count is:' , product_count)
print ( '\t7. iterating inventory gives tuple:' , inventory.items())
#printing only egg count (value of key 'egg' ) by itearting dict
for product, product_count in inventory.items():
if product is 'egg' :
print ( '\t8. product:' , product, ' its count is:' , product_count)
#printing egg count (value of key 'egg' )
print ( '\t9. count of apple' ,inventory[ 'egg' ])
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
output:
1. inventory items { 'apple' : 20, 'banana' : 30, 'carrot' : 15, 'milk' : 15}
2. updated inventory items { 'apple' : 20, 'banana' : 30, 'carrot' : 15, 'milk' : 15, 'egg' : 20, 'bread' : 25}
3. after restocking { 'apple' : 30, 'banana' : 30, 'carrot' : 15, 'milk' : 15, 'egg' : 25, 'bread' : 25}
4. updated inventory after delete { 'apple' : 30, 'banana' : 30, 'milk' : 15, 'egg' : 25}
5a. is banana in inventory true
5b. is orange in inventory false
6. product: apple count is: 30
6. product: banana count is: 30
6. product: milk count is: 15
6. product: egg count is: 25
7. iterating inventory gives tuple: dict_items([( 'apple' , 30), ( 'banana' , 30), ( 'milk' , 15), ( 'egg' , 25)])
8. product: egg its count is: 25
9. count of apple 25
|
套装:
集合是唯一元素的无序集合。集合是可变的,但它们不允许重复的元素。
语法:
botanical_garden = {‘玫瑰’, ‘莲花’, ‘百合’}
botanical_garden.add(‘茉莉花’)
botanical_garden.remove(‘玫瑰’)
is_present_jasmine = 植物园中的“茉莉花”
上面我们可以看到定义了一个集合,添加了一个值并删除了它。如果我们在集合中添加相同的元素,则会出错。
我们还可以像维恩图一样比较两个集合。比如两个数据集的并集、差值、交集。
1
2
3
4
5
6
7
8
9
|
botanical_garden = { 'tuple' , 'rose' , 'lily' , 'jasmine' , 'lotus' }
rose_garden = { 'rose' , 'lotus' , 'hybiscus' }
common_flower= botanical_garden.intersection(rose_garden)
flowers_only_in_bg = botanical_garden.difference(rose_garden)
flowers_in_both_set = botanical_garden.uNIOn(rose_garden)
output will be a set by default .
if needed we can typecase into list using list(Expression)
|
元组:
元组是不可变的有序元素集合,这意味着它在创建后就无法更改。
语法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
ooty_trIP = ( 'Ooty' , '2024-1-1' , 'Botanical_Garden' )
munnar_trip = ( 'Munar' , '2024-06-06' , 'Eravikulam National Park' )
germany_trip = ( 'Germany' , '2025-1-1' , 'Lueneburg' )
print ( '\t1. Trip details' , ooty_trip, germany_trip)
#Accessing tuple using index
location = ooty_trip[0]
date = ooty_trip[1]
place = ooty_trip[2]
print (f '\t2a. Location: {location} Date: {date} Place: {place} ' )
location, date , place =germany_trip # Assinging a tuple to 3 different variables
print (f '\t2b. Location: {location} Date: {date} Place: {place} ' )
print ( '\t3. The count of ooty_trip is ' ,ooty_trip. count )
Output:
1. Trip details ( 'Ooty' , '2024-1-1' , 'Botanical_Garden' ) ( 'Germany' , '2025-1-1' , 'Lueneburg' )
2a. Location: Ooty Date : 2024-1-1 Place: Botanical_Garden
2b. Location: Germany Date : 2025-1-1 Place: Lueneburg
3. The count of ooty_trip is <built-in method count of tuple object at></built-in>
|
可以使用索引访问元组。元组的值可以轻松地分配给多个变量。我们可以组合两个元组来创建另一个元组。但元组不能修改。
立即学习“Python免费学习笔记(深入)”;