我想要一个数据结构来存储3件事-书名,用户给书的分数,以及给该书的唯一分数的用户数:
BookName Score Count
Book1: 7 1
4 2
Book2: 5 1
9 1
3 2
2 1
Book3: 9 3
Book4: 8 1
9 1
4 2
我可以使用哪种数据结构存储此信息并轻松访问它们?
我尝试为此使用字典,就像这样:
my_dict = [{'BookName':'Book1', 'Score': 7, 'NumberOfTimes':2},
{'BookName':'Book2', 'Score': 4, 'NumberOfTimes':1},
{'BookName':'Book1', 'Score': 5, 'NumberOfTimes':3}]
但是当我想显示Book1
的所有实例时,它仅显示第一个实例:
my_dict['BookName'=='Book1']
>>> {'BookName': 'Book1', 'NumberOfTimes': 2, 'Score': 7}
那么,哪种方法是最好的数据结构,或者什么是最好的方法?
答案 0 :(得分:1)
我建议您使用以下数据结构:
book_dict = {
'Book1': [{'NumberOfTimes':2, 'Score':7}, {'NumberOfTimes':3, 'Score':5}],
'Book2': [{'NumberOfTimes':1, 'Score':5}]
}
通过这种方式,您可以使用book_dict['Book1']
访问特定书籍的所有实例
您还可以遍历一本书。
答案 1 :(得分:1)
我宁愿保持简单并使用以下内容:
book_dict = {"Book1" : {7:1,4:2}, "Book2" : {5:1,9:1,3:2,2:1}}
for k,v in book_dict.items():
print (k, v)
book_dict["Book1"][7] = book_dict["Book1"][7]+1
print (book_dict["Book1"])
book_dict["Book1"][8] = 1
print (book_dict["Book1"])
结果:
Book1 {7: 1, 4: 2}
Book2 {5: 1, 9: 1, 3: 2, 2: 1}
{7: 2, 4: 2}
{7: 2, 4: 2, 8: 1}