【问题标题】:What data structure works like a dictionary?什么数据结构像字典一样工作?
【发布时间】:2020-04-03 03:44:44
【问题描述】:

我有一个数据集,其中包含名字和姓氏,以及一个人的年龄。我最初的想法是将数据存储在字典中,键为 name,但在这个数据集中,可能会有重复,总是会覆盖同名的人。我想知道是否还有其他我可能丢失的数据结构可以存储这些数据? (我正在从 CSV 读取这些数据)

以下数据在字典中的示例:

{'nelson bighetti': 37, 'rick sanchez': 34, 'linda mort': 25 }

此数据的最终目标是进行一些简单的计算,例如找出所有人的平均年龄和数据集的中位年龄。

【问题讨论】:

  • 一个字典,键是名字,值是一个列表,包含所有同名的人的年龄?
  • 这是一个有趣的想法,我喜欢它,但它让我想到了一个新问题,即如何对这些数据运行操作?例如,我正在搜索这个数据集的平均年龄和中位年龄。
  • 您可以在字典中使用 stats 方法。我也想建议看看这个例子。 stackoverflow.com/questions/10664856/…
  • 感谢您的链接!在列表值上运行 stats 方法会引发一些有趣的错误。
  • 不清楚你打算用数据结构中的数据做什么,所以很难判断哪些特性对你有价值。

标签: python python-3.x data-structures


【解决方案1】:

如果您正在搜索此数据集的平均年龄和中位年龄,并且同名的人被认为是不同的个体(可能年龄不同),那么您实际上并不需要姓名数据!只做你的手术,不用管名字。

作为一个更一般的答案,为什么不只使用列表列表(或者,等效地,使用元组列表)。像这样:

data = [('nelson bighetti', 37),
        ('rick sanchez', 34), 
        ('linda mort', 25),
        ('rick sanchez', 58), 
        ('rick sanchez', 7), 
        ...
       ]

这很好作为你的原始数据(一个csv文件),你可以对年龄进行所有操作:

for name, age in data:
    # do some operation on age here

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多