循环python的多变量

时间:2014-01-08 03:28:01

标签: python for-loop

我试图了解这段代码中发生的事情。我可以看到它的作用,但它如何实现它的过程使我无法实现。

from itertools import groupby
lines = '''
This is the
first paragraph.

This is the second.
'''.splitlines()
# Use itertools.groupby and bool to return groups of
# consecutive lines that either have content or don't.
for has_chars, frags in groupby(lines, bool):
    if has_chars:
        print ' '.join(frags)
# PRINTS:
# This is the first paragraph.
# This is the second.

我认为我的困惑包围了for循环中的多个变量(在本例中为has_charsfrags)。多个变量如何可能?怎么了? python如何处理多个变量?当我在for循环中放入多个变量时,我对python说什么?您可以在for循环中创建多少变量?当我对编程实际形成一个问题时,我怎么能问一个精确的问题呢?

我已经尝试通过python可视化工具运行它以获得更好的理解。那件事从来没有让我更清楚。尽我所能。

1 个答案:

答案 0 :(得分:2)

来自python-course

  

正如我们前面提到的,Python for循环是一个基于的迭代器   环。它逐步执行任何有序序列列表中的项目,即   字符串,列表,元组,字典和其他迭代的键。   Python for循环以关键字“for”开头,后跟一个   任意变量名称,它将包含以下的   序列对象,它是逐步通过的。一般语法看起来   像这样:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

假设您有

这样的元组列表
In [37]: list1 = [('a', 'b', 123, 'c'), ('d', 'e', 234, 'f'), ('g', 'h', 345, 'i')]

你可以迭代它,

In [38]: for i in list1:
   ....:     print i
   ....:     
('a', 'b', 123, 'c')
('d', 'e', 234, 'f')
('g', 'h', 345, 'i')

In [39]: for i,j,k,l in list1:
    print i,',', j,',',k,',',l
   ....:     
a , b , 123 , c
d , e , 234 , f
g , h , 345 , i
  
    
      

表示k,v在os.environ.items()中:
      ...打印“%s =%s”%(k,v)

    
  
USERPROFILE=C:\Documents and Settings\mpilgrim
OS=Windows_NT
COMPUTERNAME=MPILGRIM
USERNAME=mpilgrim

你可以阅读@iCodez提到的关于元组解包的内容。在Tuples in PythonUnpacking Tuples链接中,他们用适当的示例对其进行了解释。