Python-元组在for循环中解包

发布于 2021-02-02 23:15:02

我偶然发现以下代码:

for i,a in enumerate(attributes):
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   e = Entry(root)
   e.grid(column=1, row=i)
   entries.append(e)
   entries[i].insert(INSERT,"text to insert")

我不明白’i,a’位,并且在Google上搜索有关’for’的信息是一种痛苦,当我尝试使用该代码尝试时,我得到了错误:

ValueError:需要多个值才能解压

有谁知道它的作用或与之有关的事情,可以通过谷歌了解更多信息吗?

关注者
0
被浏览
71
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你可以通过Google搜索“元组拆箱”。可以在Python的各个地方使用它。最简单的是分配

    >>> x = (1,2)
    >>> a, b = x
    >>> a
    1
    >>> b
    2
    

    在for循环中,其工作原理类似。如果iterable的每个元素都是一个元组,则可以指定两个变量,循环中的每个元素都将解压缩为这两个元素。

    >>> x = [(1,2), (3,4), (5,6)]
    >>> for item in x:
    ...     print "A tuple", item
    A tuple (1, 2)
    A tuple (3, 4)
    A tuple (5, 6)
    >>> for a, b in x:
    ...     print "First", a, "then", b
    First 1 then 2
    First 3 then 4
    First 5 then 6
    

    枚举函数创建一个可迭代的元组,因此可以通过这种方式使用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看