【问题标题】:retrieving two variables at the time in list (Python)在列表中检索两个变量(Python)
【发布时间】:2016-12-02 14:18:51
【问题描述】:
dict = {'key':['10', '11']}

for var_i, var_j in dict['key']:
    print var_i
    print var_j  

运行上面的代码会给我下面的输出。

1
0
1
1  

我怎样才能得到这样的输出?

10
11

[编辑]
变量的长度可能不同,它们并不总是两个字符。我正在寻找 var_i 成为列表的第一个元素,而 var_j 成为第二个。

【问题讨论】:

  • 如果你想在之后将它们连接起来,你为什么要分开它们?
  • 您实际上并没有检索两个变量,而是检索一个字符串,然后访问它的第一个和第二个字符
  • 您的编辑是否意味着您只需要列表的前两个元素以防它有更多元素?

标签: python python-2.7 dictionary for-loop


【解决方案1】:

你正在循环字符串的字符。

由于您不关心键,而只关心值,因此只需这样做:

d = {'key':['10', '11']}

for v in d.values():
    # v is the list, now loop to print each item
    for i in v:
        print(i)

【讨论】:

  • 我在 d.values() 中为 v, i 做了:打印 v,打印 i,得到了我想要的。谢谢!
【解决方案2】:

您只需要迭代dict 的值,键为key,例如:

>>> my_dict = {'key':['10', '11']}
>>> for i in my_dict['key']:
...     print i
...
10
11

您所拥有的语法通常用于展开列表的元素:

>>> a, b = my_dict['key']
>>> print a   # value of index `0`
10
>>> print b   # value of index `1`
11

注意:不要使用dict作为变量名,因为dict是Python的内置类型

【讨论】:

  • 感谢您的编辑,但现在 python 3 正在成为规范,最好为 python 2 和 python 3 编写 print(i)print i 在 python 3 中是非法的,所以我不得不回滚您的编辑。
  • @Jean-FrançoisFabre 我相信更好的方法是在答案中将其作为注释提及,同时使用两种语法。不是吗?因为 OP 与 Python 2 相关,所以它应该作为主代码的一部分:)
【解决方案3】:

不要用已经有意义的名字来命名事物。 d['key'] 等于 ['10', '11']。所以你的for 循环拉出'10',然后将它解包到var_i, var_j。只需执行 for 循环,无需解包。

for v in d['key']:
    print(v)

【讨论】:

    【解决方案4】:

    很简单,用for循环就行了。

    >>for v1 in dict['key']:
        print(v1)
    

    :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-29
      • 2021-04-23
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 2021-02-17
      • 2011-07-12
      • 2013-01-29
      相关资源
      最近更新 更多