how do you make a For loop when you don't need index in python?

Question:

If I need a for loop in Python:

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

but don’t use the i for anything, pylint complains about the unused variable. How should I handle this? I know you can do this:

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

but doing this seems quite strange to me. Is there a better way?

I’m quite new to Python, so forgive me if I’m missing something obvious.

Asked By: Jacxel

||

Answers:

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

According to pylint documentation:

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

In other words, if the name of the variable starts with an underscore, or with the letters dummy, pylint would not complain about the variable being unused:

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

Usually you can work around it, just like this in your case:

>>> print "spamn"*len(range(1,42))
Answered By: luke14free

There is no “natural” way to loop n times without a counter variable in Python, and you should not resort to ugly hacks just to silence code analyzers.

In your case I would suggest one of the following:

  • Just ignore the PyLint warning (or filter reported warnings for one-character variables)
  • Configure PyLint to ignore variables named i, that are usually only used in for loops anyway.
  • Mark unused variables using a prefix, probably using the default _ (it’s less distracting than dummy)
Answered By: Ferdinand Beyer

3 Simple Reasons

  1. There is no way to loop through your program without using a counter variable in a for loop.
  2. But you can create a program that goes from index[1] to index[2] just by adding if index[1]is done. return index[]+1.
  3. Unfortunately, you need to create an extra program which is not as efficient as the for loop and is not efficient in long programs.
Answered By: drewteriyaki