当你不需要在python中使用索引时,如何制作For循环?

时间:2012-04-12 10:51:37

标签: python coding-style pylint dummy-data

如果我需要python中的for循环

for i in range(1,42):
    print "spam"

但不要使用“i”表示任何pylint抱怨未使用的变量。我该怎么处理?我知道你可以这样做:

for dummy_index in range(1,42):
    print "spam"

但这样做对我来说似乎很奇怪,有更好的方法吗?

我在python上很新,所以请原谅我,如果我错过了一些明显的东西。

5 个答案:

答案 0 :(得分:11)

for _ in range(1,42):
    print "spam"

答案 1 :(得分:6)

根据pylint documentation

--dummy-variables-rgx=
          A regular expression matching names used for dummy variables (i.e.
          not used). [current: _|dummy]

换句话说,如果变量的名称以下划线或字母dummy开头,pylint就不会抱怨变量未被使用:

for dummy in range(1, 42):
    print "spam"

答案 2 :(得分:6)

如果没有Python中的计数器变量,没有“自然”的方法来循环 n 次,你不应该只是为了使代码分析器静音而使用丑陋的黑客。

在您的情况下,我会建议以下之一:

  • 只需忽略PyLint警告(或过滤报告的单字符变量警告)
  • 配置PyLint以忽略名为i的变量,这些变量通常仅用于for循环。
  • 使用前缀标记未使用的变量,可能使用默认的_(它比[{1}}更少分散注意力)

答案 3 :(得分:1)

通常你可以解决它,就像你的情况一样:

>>> print "spam\n"*len(range(1,42))

答案 4 :(得分:0)

3个简单原因

  1. 如果不在for循环中使用计数器变量,则无法遍历程序。
  2. 但只需添加index[1]即可创建从index[2]if index[1]的程序。 return index[]+1
  3. 不幸的是,您需要创建一个额外的程序,该程序不如for循环效率高,并且在长程序中效率不高。