for-lus in Python

In C/C++ kan ik de volgende lus hebben

for(int k = 1; k <= c ; k +=2)

Hoe doe je hetzelfde in Python?

Ik kan dit

for k in range(1,c):

In Python, wat identiek zou zijn aan

for(int k = 1; k <= c ; k++)

in C/C++.


Antwoord 1, autoriteit 100%

Probeer dit te gebruiken:

for k in range(1,c+1,2):

Antwoord 2, autoriteit 62%

Je moet ook weten dat in Python itereren over integer-indices een slechte stijl is, en ook langzamer dan het alternatief. Als u alleen naar elk van de items in een lijst of dictaat wilt kijken, kunt u rechtstreeks door de lijst of dictaat bladeren.

mylist = [1,2,3]
for item in mylist:
    print item
mydict  = {1:'one', 2:'two', 3:'three'}
for key in mydict:
    print key, mydict[key]

Dit is eigenlijk sneller dan het gebruik van de bovenstaande code met range(), en verwijdert de externe ivariabele.

Als je items van een lijst ter plekke moet bewerken, dan heb je welde index nodig, maar er is nog een betere manier:

for i, item in enumerate(mylist):
    mylist[i] = item**2

Nogmaals, dit is zowel sneller als leesbaarder. Dit is een van de belangrijkste verschuivingen in het denken die je moet maken als je van C++ naar Python gaat.


Antwoord 3, autoriteit 32%

Het antwoord is goed, maar voor de mensen die dit willen met range(), is het te doen formulier:

range(end):

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start,end):

>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range(start,end, step):

>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]

Antwoord 4, autoriteit 16%

Als je een lus in Python wilt schrijven die een geheel getal no enz. afdrukt, kopieer en plak deze code dan gewoon, het zal veel werken

# Display Value from 1 TO 3  
for i in range(1,4):
    print "",i,"value of loop"
# Loop for dictionary data type
  mydata = {"Fahim":"Pakistan", "Vedon":"China", "Bill":"USA"  }  
  for user, country in mydata.iteritems():
    print user, "belongs to " ,country

Antwoord 5, autoriteit 9%

In Python heb je over het algemeen for in lussen in plaats van algemene for-lussen zoals C/C++, maar je kunt hetzelfde bereiken met de volgende code.

for k in range(1, c+1, 2):
  do something with k

Referentie Loop in Python.


Antwoord 6, autoriteit 3%

In C/C++ kunnen we het volgende doen, zoals je al zei

for(int k = 1; k <= c ; k++)
for(int k = 1; k <= c ; k +=2)

We weten dat hier kbegint met 1 en geleidelijk doorgaat tot (vooraf gedefinieerde) cmet stapwaarde 1 of 2. We kunnen dit in Python doen door te volgen,

for k in range(1,c+1):
for k in range(1,c+1,2):

Bekijk ditvoor meer informatie.


Antwoord 7

De functie range()in python is een manier om een ​​reeks te genereren. Sequenties zijn objecten die kunnen worden geïndexeerd, zoals lijsten, strings en tupels. Een gemakkelijke manier om te controleren op een reeks is om geïndexeerde elementen eruit te halen. Het kan ook worden gecontroleerd met behulp van de Sequence Abstract Base Class(ABC)uit de collecties-module.

from collections import Sequence as sq
isinstance(foo, sq)

Het range()heeft drie argumenten: start, stopen step.

  1. start: Het startelement van de vereiste reeks
  2. stop: (n+1)de element van de vereiste reeks
  3. step: De vereiste opening tussen de elementen van de reeks. Het is een optionele parameter die standaard op 1 staat.

Om het gewenste resultaat te krijgen, kunt u de onderstaande syntaxis gebruiken.

range(1,c+1,2)

Antwoord 8

Ondanks het vragen van een FOR STATEMENT, gewoon voor de goede orde als bonus, alternatiefmet WHILE, zou het zijn:

k=1
while k<c:
      #
      # your loop block here
      #
      k+=2

Antwoord 9

Gebruik dit in plaats van een for-lus:

k = 1
while k <= c:
   #code
   k += 1

Antwoord 10

Hier zijn enkele voorbeelden om het gehele bereik en de tekenreeks te herhalen:

#(initial,final but not included,gap)
for i in range(1,10,2): 
  print(i); 
1,3,5,7,9
# (initial, final but not included)  
# note: 4 not included
for i in range (1,4): 
   print(i);
1,2,3 
#note: 5 not included
for i in range (5):
  print (i);
0,1,2,3,4 
# you can also iterate over strings
myList = ["ml","ai","dl"];  
for i in myList:
  print(i);
output:  ml,ai,dl

Other episodes