迭代Python中少量项目的最佳方式?

时间:2011-05-14 06:54:13

标签: coding-style python

我刚刚阅读了关于python的演示文稿,并且我注意到作者错过了元组的圆括号以便迭代的项目,并且让我感到震惊的是我可能倾向于让它们进入。 - PEP-8的读取没有给出确定的答案,如果没有一些讨论,我不想在旧的“显性优于隐性”上“退缩”;所以......

你更喜欢哪个?您认为在这两个等效语句中哪个更具pythonic(将讨论限制在for语句中使用)。

>>> # Some setup
>>> x, y, z = 1, 'Hi', True
>>> 
>>> #Style 1: Implicit tuple
>>> for i in x, y, z:
    print(i)


1
Hi
True
>>> # Style 2: Explicit tuple
>>> for i in (x, y, z):
    print(i)


1
Hi
True
>>> 

4 个答案:

答案 0 :(得分:3)

我明确表示不要这样做。我发现如果将元组分配给描述性变量,代码可读性会提高。

例如:

for name in relative_names:
    print name

VS

for name in "Tyler", "Robert", "Marla", "Chloe", "Lou":
    print name

答案 1 :(得分:1)

我总是喜欢:

>>> # Some setup
... some_values = 1, 'Hi', True,
>>> 
>>> # Style 3: named tuple
... for value in some_values:
...     print(value)
... 
1
Hi
True

答案 2 :(得分:0)

在这种情况下,显式优于隐式,元组应该是显而易见的。

我认为有更大的鱼可以炸了:)在任何一种情况下,任何人都会知道你在做什么,这是一个微小的变化。

答案 3 :(得分:0)

我选择 Style 2 ,因为你可以真正理解你在迭代的内容:

>>> # Style 2: Explicit tuple
>>> for i in (x, y, z):
        print(i)

由于某些原因,样式1对我来说似乎有点混乱。