使用for循环创建数据副本

时间:2018-09-28 11:17:00

标签: python dictionary for-loop

我有一个包含36个数据项的字典。我想将每条记录复制100次。因此,总记录将为3600。

def createDataReplication(text_list):
    data_item = {}
    print(len(text_list))
    for k,v in text_list.iteritems():
        for i in range(0,100):
            data_item[k+str(i)] = v
    print(len(data_item))

输出

36
3510

为什么是3510而不是3600?我有什么错误吗?

2 个答案:

答案 0 :(得分:5)

对于k+str(i)k的某些组合,重复串联i。字典键必须唯一。这将导致现有密钥被覆盖。

我建议您改用tuple键,该键还可以使数据结构与您的逻辑对齐:

for k, v in text_list.iteritems():
    for i in range(100):
        data_item[(k, i)] = v

答案 1 :(得分:3)

考虑可以通过两种方式创建诸如'110'之类的密钥:

k+str(i) = '1' + str(10)k+str(i) = '11' + str(0)

您需要将k+str(i)替换为可以创建唯一键值的内容。一种方法是将密钥设为元组:(k, i)

data_item[k,i] = v