2013-10-03 21 views
0

初学蟒蛇,是否有人可以解释我的下面的语句我有一个代码,我必须了解发现的含义是: -我们可以将多个搜索条件放在python列表的同一个循环中吗?

for _,s in self.current_links: 

那么一些行动,比方说。

“current_links”是一个列表在这里。之后我无法弄清楚“_”的意义。我们可以为相同的循环放置多个条件吗?该声明是否意味着在列表中搜索_ &,然后继续?

+0

_这里只是另一个变量。 –

回答

0

_这里只是另一个变量。

_将保存列表的索引并且s将保存列表的值。

+1

如果OP的代码使用'enumerate',这将是有意义的 - 但是,它不是,即使它是 - 丢弃索引也没有意义 - 你只是不会使用'enumerate'开头。 –

+0

是的你的权利。 –

2

在这种情况下,它看起来更像self.current_lines是真实被解开的2项,第一项是使用_命名约定以表明它不是真正需要的,如:

items = [ [1,2], [3,4], [5,6] ] 
for _, item in items: 
    print item # Gives 2 4 6 

所以上述工作采取的每个项目在列表中,如[1,2]然后在赋值的左拆包的变量 - _item_得到价值1item得到值2 ...的_被指示这不是必需的。

然而,有时_用于gettext和相似的,所以为了避免混乱的命名空间和潜在的出碴,最多,它也可以写为:

for item in (item[1] for item in items): 
    print item 
+0

解包到一个占位符变量通常更具可读性,但是因为'_'被用于很多事情,所以我倾向于为'_dontcare,item in ...'做类似的事情。或者,第二个示例的更简化版本是'for map in map(operator.itemgetter(1),items)' – SingleNegationElimination

相关问题