我试图了解这段代码中发生的事情。我可以看到它的作用,但它如何实现它的过程使我无法实现。
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_chars
和frags
)。多个变量如何可能?怎么了? python如何处理多个变量?当我在for循环中放入多个变量时,我对python说什么?您可以在for循环中创建多少变量?当我对编程实际形成一个问题时,我怎么能问一个精确的问题呢?
我已经尝试通过python可视化工具运行它以获得更好的理解。那件事从来没有让我更清楚。尽我所能。
答案 0 :(得分:2)
正如我们前面提到的,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 Python和Unpacking Tuples链接中,他们用适当的示例对其进行了解释。