Ich lerne Python und ich liebe, dass Sie iterierbare Objekte durchlaufen können, ohne ständig Indexvariablen zu erstellen.Python-Schleifen ohne Index
Aber ich finde mich selbst immer wieder Indexvariablen erstellen, so dass ich sie in Aufrufen von parallelen Objekten verweisen kann. Wie wenn ich zwei Listen oder eine Liste und ein Wörterbuch vergleiche.
Wie gewünscht: einige Beispiele
`s= "GAGCCTACTAACGGGAT"# the strings we are evaluating
t= "CATCGTAATGACGGCCT"
c = 0# c = position of interest within the strings
m = 0 # m = number of mutations found so far.
for i in s: # cycling through all nucleotides listed in s
if(i == t[c]): #compare s[c] to t[c]
c +=1 # if equal, increase position counter
else:
c+=1 # if not equal, increase both position and
m+=1 #mutation counters.`
UND
def allPossibleSubStr(s): #takes a dict of strings, finds the shortest, and produces a list of all possible substrings, thus a list of possible common substrings to all elements of the original dict
ks = s.keys()
c=0 #counter
j=0 # ks place holder for shortest string
subSTR = []
for i in ks: #finds the shortest entry in stringDict
if(s[i] < s[ks[(c+1)%len(s)]]):
j=c
c +=1
c=s[ks[j]] #c is now a string, the shortest...
j=ks[j] # j is now a key string, the shortest...
n = (len(c)*(len(c)+1))/2 # number of subsets of c
#producing a list of possible substrings
for i in range(len(c)):
for k in range(len(c)-i):
subSTR.append(c[i:i+k+1])
#print("i =" +str(i)+ " and k=" + str(k))
#is there a list function with eleminates duplicate entries.
subSTR=list(set(subSTR))# a set does not have any duplicate entires
subSTR.sort(key=len) # sorts substring from shortest to longest string
subSTR.reverse()
return subSTR
Gibt es eine Möglichkeit, um dieses?
Pflege ein Beispiel zu geben, was Sie meinen? –
Bitte zeigen Sie ein Beispiel für die Verwendung der Indizes mit. Abhängig von Ihrem Anwendungsfall gibt es wahrscheinlich andere Möglichkeiten. Z.B. Wenn Sie zwei Listen haben, die Sie gleichzeitig durchlaufen müssen, können Sie 'zip()' verwenden. – poke
Ich hatte gerade einen Blick auf mehr als 1000 for Schleifen in mehreren Python-Projekten von mir, und weniger als 10 verwenden Indizes (mit 'enumerate'). Also, wahrscheinlich übersiehst du einen besseren Weg, um deine Absicht auszudrücken. – spectras