gpt4 book ai didi

python - 双重嵌套defaultdict

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:00 26 4
gpt4 key购买 nike

摸索但无法弄清楚,可能是一个非常简单的解决方案,但请帮助我理解。

来源(sample.txt):

1,1,2,3
2,3,2,4,4

这个:

import csv
from collections import defaultdict

input = "sample.txt"

with open(input) as f:
r = csv.reader(f)
d = defaultdict(list)
rlabel = 1

for row in r:
d[rlabel].append(row)
rlabel += 1

print(d)

得到这个:

defaultdict(<class 'list'>, {1: [['1', '1', '2', '3']], 2: [['2', '3', '2', '4', '4']]})

为什么我的列表周围有双括号?

最佳答案

Why are there double brackets around my lists?

您的代码完全按照预期工作。关键点是extendappend的用法。

  • append添加您作为单个元素传递的参数。由于列表是一个对象,并且您的默认字典类是列表,因此该列表将作为列表的列表附加。

  • extend方法在输入中进行迭代,并通过添加可迭代对象中的所有元素来扩展原始列表。

因此,在这种情况下,如果您想将单个列表添加到默认字典中,您应该使用 list.extend 方法。你的输出将是:

defaultdict(<class 'list'>, {1: ['1', '1', '2', '3'], 2: ['2', '3', '2', '4', '4']})

关于python - 双重嵌套defaultdict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60197258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com