【问题标题】:How can I have array values in a Python dictionary? [duplicate]如何在 Python 字典中包含数组值? [复制]
【发布时间】:2021-08-04 07:45:44
【问题描述】:

在 Perl 中,我可以遍历 csv 文件并自动更新哈希键指向的数组。假设我有一个这样的文件:

foo,1
foo,2
bar,3
baz,2
baz,1
baz,5

然后我可以像这样循环(伪代码):

for ($key,$val in csv file) {
  push($hash{$key}, $val)
}

这样我就得到了这样的结构:

$hash = {
foo : [1,2]
bar : [3]
baz : [2, 1, 5]
}

Pythonic 的方法是什么?

【问题讨论】:

  • hash = collections.defaultdict(list)是你想要的,然后你可以做到hash['some_key'].append('somevalue')
  • 在字典中添加一个不是列表的元素有什么问题吗?例如,“dict['elem'] = 33143”?
  • 顾名思义,它只是一个默认值,没有什么能阻止你添加不同类型的值

标签: python dictionary


【解决方案1】:

试试这个:

my_dict = dict()
with open("data.csv") as f:
    for key, val in enumerate(f):
        if key in my_dict:
            my_dict[key].append(val)
         else:
             my_dict[key] = [val]   
        
print(my_dict)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    相关资源
    最近更新 更多