Python理解中是否需要局部变量?

Python理解中是否需要局部变量?,python,warnings,list-comprehension,Python,Warnings,List Comprehension,在Python3.x中,我调用了一个函数rand\u foo(),每次调用该函数时都会返回一些随机内容。我希望将随机结果序列存储到列表中。我正在使用以下构造: r = [ rand_foo() for i in range(10) ] 现在,我的PyCharm 3.0 IDE不断发出警告:未使用局部变量“i”值 是否有一种优雅的方法来删除不必要的变量?实际上,在某些情况下,我可以使用itertools.repeat() r = [rand_foo() for _ in range(10)]

在Python3.x中,我调用了一个函数
rand\u foo()
,每次调用该函数时都会返回一些随机内容。我希望将随机结果序列存储到列表中。我正在使用以下构造:

r = [ rand_foo() for i in range(10) ]
现在,我的PyCharm 3.0 IDE不断发出警告:
未使用局部变量“i”值


是否有一种优雅的方法来删除不必要的变量?实际上,在某些情况下,我可以使用
itertools.repeat()

r = [rand_foo() for _ in range(10)]
例如,见:


我相信这将抑制PyCharm警告,但有一个警告:有几个库,最显著的是stdlib中的i18n模块,它们为
提供了特殊含义,如果您使用其中一个库,您的linter(或人类阅读器)可能会抱怨您正在使用同名的本地文件跟踪全局
。(当然,如果您的表达式实际上试图使用
gettext
,您不能这样做。)这是一个多么糟糕的选择!Python
gettext
模块是C/Unix
gettext
库的包装器,该库自90年代初以来一直是事实上的标准,并使用
(“字符串本地化”)
来表示字符串应该本地化。以及perl、sh、Smalltalk等。
gettext
的绑定已经采用了相同的
语法。所以真的没有选择…没错,警告消失了!谢谢。@ WSySube如果你不关心变量,你可以为它们二者重用下划线:<代码> R= [[RAND(),用于范围(10)]中的范围(20)] /代码>我认为它是PyCharm的一个bug。在Python代码中出现这种类型的表达式是很常见的,您不应该为了避免愚蠢的警告而跳转。