首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储和访问多次出现但具有不同值的项?

如何存储和访问多次出现但具有不同值的项?
EN

Stack Overflow用户
提问于 2018-07-05 14:36:18
回答 2查看 31关注 0票数 0

我想要一个数据结构来存储3件事-书名,用户给书的分数,以及有多少用户给了这本书唯一的分数:

代码语言:javascript
复制
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

哪种数据结构使我能够轻松地存储和访问这些信息?

为此,我尝试使用字典,如下所示:

代码语言:javascript
复制
my_dict = [{'BookName':'Book1', 'Score': 7, 'NumberOfTimes':2}, 
       {'BookName':'Book2', 'Score': 4, 'NumberOfTimes':1}, 
       {'BookName':'Book1', 'Score': 5, 'NumberOfTimes':3}]

但是当我想要显示Book1的所有实例时,它只显示第一个实例:

代码语言:javascript
复制
my_dict['BookName'=='Book1']
>>> {'BookName': 'Book1', 'NumberOfTimes': 2, 'Score': 7}

那么,哪种数据结构是最好的,或者说最好的方法是什么呢?

EN

回答 2

Stack Overflow用户

发布于 2018-07-05 14:50:00

我建议你有一个如下的数据结构:

代码语言:javascript
复制
book_dict = {
    'Book1': [{'NumberOfTimes':2, 'Score':7}, {'NumberOfTimes':3, 'Score':5}],
    'Book2': [{'NumberOfTimes':1, 'Score':5}]
}

这样,您就可以使用book_dict['Book1']访问特定图书的所有实例,还可以对图书进行迭代。

票数 1
EN

Stack Overflow用户

发布于 2018-07-05 14:59:41

我宁愿让它保持简单,并使用以下内容:

代码语言:javascript
复制
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"])

结果:

代码语言:javascript
复制
Book1 {7: 1, 4: 2}
Book2 {5: 1, 9: 1, 3: 2, 2: 1}
{7: 2, 4: 2}
{7: 2, 4: 2, 8: 1}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51184734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档