我有一个包含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?我有什么错误吗?
答案 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