重复提取的数据未打印两次(Python)



我将数据存储在一个文本文件中,格式如下所示

counter name,coins weight,coins value,inputs corrrect
Jim,120,$1,Yes
Dwight,82,$1,No
Jim,130,$0.10,No
Dwight,82,$1,No

我使用以下代码提取并打印数据

info = {}
with open('CoinCount.txt') as input_file:
for line in input_file:
countername, coinsweight, coinsvalue, inputscorrect = (
item.strip() for item in line.split(',', 3))
info[countername] = dict(zip(('coinsweight', 'coinsvalue', 'inputscorrect'),
(coinsweight, coinsvalue, inputscorrect)))
print('info:')
for countername, record in info.items():
print('  Counter Name %r:' % countername)
for field, value in record.items():
print('    %s: %s' % (field, value))

然而,这段代码不会像我想做的那样打印重复的条目。如果有人知道如何包含重复条目,我们将不胜感激。

预期输出

Counter Name 'Jim':
coinsweight: 120
coinsvalue: $1
inputscorrect: Yes
Counter Name 'Dwight':
coinsweight: 82
coinsvalue: $1
inputscorrect: No
Counter Name 'Jim':
coinsweight: 130
coinsvalue: $0.10
inputscorrect: No
Counter Name 'Dwight':
coinsweight: 82
coinsvalue: $1
inputscorrect: No

累计输出

Counter Name 'Jim':
coinsweight: 130
coinsvalue: $0.10
inputscorrect: No
Counter Name 'Dwight':
coinsweight: 82
coinsvalue: $1
inputscorrect: No

提前感谢

就像Dirks-Senne说的那样,Python字典是一种只能包含唯一值的数据结构。因此,如果将新值分配给同一个键(只能是字符串(,则会用新值覆盖旧值。例如:

countries = {"USA": "America", "France": "Europe"}
print(countries)
countries["USA"] = "Europe"
print(countries)

中的结果

#Before the assignment
{'USA': 'America', 'France': 'Europe'}
#After the assignment
{'USA': 'Europe', 'France': 'Europe'}

曼丹复制品的可能方法

如果你想保持重复,你可以创建一个元素列表,其中每个元素都是不同的字典,或者使用不同的键(比如和id号,而不是国家名称(,打印时不要考虑它。

Python字典只能将唯一值作为键。您试图为相同的键赋予不同的值,这将覆盖它们。考虑使用不同的数据结构。

最新更新