Ich versuche, int-Werte aus einer Liste von Tupeln zu vergleichen, während ich über die Liste iteriere. Konkret habe ich eine Liste von Tupeln wie folgt:
numbers_tokenized = [('2900', 368),('7,', 378),('2900', 379),('33', 384),('34', 385),('40', 386),('00', 387),('33', 389),('34', 390),('40', 391),('01', 392),('7', 410),('2900', 412),('7', 422),('191', 424),('2900', 425),('33', 428),('34', 429),('40', 430),('00', 431),('33', 433),('34', 434),('40', 435),('01', 436)]
Was ich tun möchte, ist zu prüfen, ob das zweite Element in einem Tupel das Element des nächsten Tupels in der Liste + 1 ist. Zum Beispiel 384,385,386,387
aus der obigen Liste.
Ich habe die folgende Schleife, von der ich denke, dass sie die Arbeit erledigen sollte.
cons_nums = list()
for x in range(1,len(numbers_tokenized)):
if numbers_tokenized[x][1]-1 == numbers_tokenized[x-1][1]:
cons_nums.append(numbers_tokenized[x-1])
else:
continue
Dies gibt mir jedoch die folgende Ausgabe, die für mich nicht viel Sinn macht.
cons_nums = [('7,', 329),
('7,', 338),
('7,', 349),
('7,', 367),
('7,', 378),
('33', 384),
('34', 385),
('40', 386),
('33', 389),
('34', 390),
('40', 391),
('191', 424),
('33', 428),
('34', 429),
('40', 430),
('33', 433),
('34', 434),
('40', 435)]
Mache ich einen offensichtlichen Fehler oder warum funktioniert das nicht?
BEARBEITEN:
In einer erfolgreichen Schleife cons_nums
würde das so aussehen:
cons_nums = [('7,', 378),('2900', 379),('33', 384),('34', 385),('40', 386),('00', 387),('33', 389),('34', 390),('40', 391),('01', 392),('191', 424),('2900', 425),('33', 428),('34', 429),('40', 430),('00', 431),('33', 433),('34', 434),('40', 435),('01', 436)]
Wenn Sie nur if's und loops wollen:
numbers_tokenized = [('2900', 368),('7,', 378),('2900', 379),('33', 384),('34', 385),('40', 386),('00', 387),('33', 389),('34', 390),('40', 391),('01', 392),('7', 410),('2900', 412),('7', 422),('191', 424),('2900', 425),('33', 428),('34', 429),('40', 430),('00', 431),('33', 433),('34', 434),('40', 435),('01', 436)]
cons_nums = list()
for x in range(0,len(numbers_tokenized)-1):
if numbers_tokenized[x][1]+1 == numbers_tokenized[x+1][1]:
if numbers_tokenized[x] not in cons_nums:
cons_nums.append(numbers_tokenized[x])
if numbers_tokenized[x+1] not in cons_nums:
cons_nums.append(numbers_tokenized[x+1])
print(cons_nums)
Ausgabe:
[('7,', 378), ('2900', 379), ('33', 384), ('34', 385), ('40', 386), ('00', 387), ('33', 389), ('34', 390), ('40', 391), ('01', 392), ('191', 424), ('2900', 425), ('33', 428), ('34', 429), ('40', 430), ('00', 431), ('33', 433), ('34', 434), ('40', 435), ('01', 436)]
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen