【问题标题】:Creating replica of data using for loop使用 for 循环创建数据副本
【发布时间】:2019-03-04 09:13:33
【问题描述】:

我有一个包含 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?我做错了吗?

【问题讨论】:

  • a = [{'amount': 400.0, 'currency': 'USD', 'tid': 7072},{'amount': 100.0, 'currency': 'RS', 'tid': 7070}] 然后a*10 并检查结果

标签: python dictionary for-loop


【解决方案1】:

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

我建议您改用 tuple 键,此外,它还可以使数据结构与您的逻辑保持一致:

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

【讨论】:

    【解决方案2】:

    考虑像'110' 这样的密钥可以通过两种方式创建:

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

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

    data_item[k,i] = v
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2021-08-15
      • 1970-01-01
      相关资源
      最近更新 更多