-
Notifications
You must be signed in to change notification settings - Fork 0
/
分解物品包成单个物品.py
37 lines (29 loc) · 1.52 KB
/
分解物品包成单个物品.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 假设你有一个物品列表,里面有各种类型的铅笔。列表中的每个物品都是一个字典,有两个键 - type 和 quantity。
#
# type键对应一个字符串,表示铅笔的类型,而 quantity 键保存一个整数,表示该类型铅笔的数量。
#
# 编写一个程序,将一个物品列表分解成一个列表中的单个物品。
#
# 定义函数break_down_list(),参数为items。
# 在函数内,对列表中的每个物品,创建一个具有相同type但quantity为1的新字典。
# 返回新的字典列表。
#
# 示例输入
# [{'type': 'HB', 'quantity': 2}, {'type': '2B', 'quantity': 3}]
# 示例输出
# [{'type': 'HB', 'quantity': 1}, {'type': 'HB', 'quantity': 1}, {'type': '2B', 'quantity': 1}, {'type': '2B', 'quantity': 1}, {'type': '2B', 'quantity': 1}]
def break_down_list(items):
# 定义一个空列表用于存放新字典
new_list = []
# 遍历输入的字典列表
for item in items:
# 将遍历的字典中键为quantity的值作为迭代器循环值存入临时变量中
for i in range(item['quantity']):
# 将遍历出的字典type值作为新字典的type数据,并将quantity的值设为1添加到列表中(item['quantity']的值作为遍历次数,对应就添加了几个)
new_list.append({'type': item['type'], 'quantity': 1})
# 输出最终存入列表的新字典数据
return new_list
# 获取物品列表
items = eval(input())
# 调用函数,输出分解后的物品列表
print(break_down_list(items))