【问题标题】:Python appending to a dictionary listPython追加到字典列表
【发布时间】:2018-12-10 22:05:06
【问题描述】:

所以我有一个包含两个数字列表的文本文件,然后是一个包含另外两个数字的新行,依此类推。例如:

     2000 5000
     2000 5001
     3000 5000 
     4000 7777
      ......

我正在尝试创建一个字典,在读取该行时,第一个索引中的每个新数字都会有一个键递增 1,并且值是一个包含文本中第一个数字和第二个数字的列表文件。所以对于我的例子,我想拥有

{0: ['2000', '5000', '5001'], 1: ['3000', 5000'], 2: ['4000', '7777']}

我已经在文件中读取了代码的前 3 行

我的代码如下

    testing = {}
    count = 0
    for i in range(len(lines)):
      x = (lines[i].split(' '))
      if x[0] in testing:
         testing[count].append(x[1])
      else:
         testing[count] =x[0]
         testing[count].append(x[1])

         count += 1

我遇到的问题是它只打印出一个字典键和值。

【问题讨论】:

  • 没有内置的“字典列表”。除了缺少的 ', ` {0: '2000', '5000', '5001' 1: '3000', 5000' 2: '4000', '7777'}` 是无效的语法。
  • 另外,如果您要使用递增的整数键,为什么要使用字典而不是列表?
  • 也许这会是一个更好的方法。对此仍然是全新的。重点是我想要一个 ID,在我的情况下是计数,并且该 ID 将包含一组数字中的所有连接组件

标签: python dictionary key key-value


【解决方案1】:

您需要在 for 循环之外初始化计数。将您的 count = 0 移到循环之前。

count = 0
testing = {}

for i in range(len(lines)):
  x = (lines[i].split(' '))

  if x[0] in testing:
     testing[count].append(x[1]):
  else:
     testing[count] =x[0]
     testing[count].append(x[1]):

     count += 1

【讨论】:

  • 啊,是的,我修好了。现在我试图想一个地方来增加我的计数,因为我现在的方式是当它进入第二行时计数为 1,但我需要将 5001 存储在 2000 和 5000 的列表中
猜你喜欢
  • 2018-03-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2021-01-07
  • 2019-07-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
相关资源
最近更新 更多