【问题标题】:Python Dictionary: Iterating values in a listPython字典:迭代列表中的值
【发布时间】:2021-05-20 06:41:53
【问题描述】:

我想在列表中迭代值,但我得到了这种我不喜欢的输出:

首先我有一本字典,我把它转换成列表。

listb=[{'id': '1b33b33f-8e92-4068-a459-0a1de0febb7c'}, {'id': 'c56502b9-0632-4f9f-88b9-70f40e61ef5d'}]

将字典值转换为列表的代码:

vol = [i["id"] for i in listb]

我想迭代列表中的值:

for i in vol:
    print(i[0])

但我得到了这些值:

1
c

期望的输出是:

1b33b33f-8e92-4068-a459-0a1de0febb7c
c56502b9-0632-4f9f-88b9-70f40e61ef5d

【问题讨论】:

    标签: python-3.x list dictionary


    【解决方案1】:

    您只需将您的打印语句更改为如下所示:

    for i in vol:
        print(i)
    

    解释:

    当你运行这个时:

    vol = [i["id"] for i in listb]
    

    vol中的内容是这样的:

    >>> vol
    ['1b33b33f-8e92-4068-a459-0a1de0febb7c', 'c56502b9-0632-4f9f-88b9-70f40e61ef5d']
    

    所以你只需要打印列表vol 中的每个元素。当您编写i[0] 时,您正在访问i 中字符串的第一个元素。

    【讨论】:

      【解决方案2】:

      i 是完整的 id。

      i[0] 是第 0 个索引,或 string i 中的第一个字符。

      在这种情况下,

      1b33b33f-8e92-4068-a459-0a1de0febb7c[0] = 1
      c56502b9-0632-4f9f-88b9-70f40e61ef5d[0] = c
      

      只打印整个元素,而不仅仅是索引。

      将您的代码更改为:

      for i in vol:
          print(i)
      

      我什至建议您将变量 i 重命名为 id

      for id in vol:
          print(id)
      

      【讨论】:

        猜你喜欢
        • 2015-09-28
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 1970-01-01
        • 2012-09-01
        • 1970-01-01
        • 2011-11-16
        • 1970-01-01
        相关资源
        最近更新 更多