2016-04-03 12 views
1

Ich versuche, das Element mit dem Index jedes Element in der ListeWie drucke ich das Element in einer Liste mit Index?

Aber mein implementieren druckt jedes Element mit dem Index 0 und jedes Element mit dem Index 1 bis zum letzten Index

kann man reparieren, es zu drucken , Ich stecke hier fest?

if __name__=="__main__": 

    r = [6, 5, 3, 3] 
    diff = [[(i,j)for i in r]for j in range(5)] 
    print(diff) 

tatsächliche Ausgang:

[[(6, 0), (5, 0), (3, 0), (3, 0)], [(6, 1), (5, 1), (3, 1), (3, 1)], [(6, 2), (5, 2), (3, 2), (3, 2)], [(6, 3), (5, 3), (3, 3), (3, 3)], [(6, 4), (5, 4), (3, 4), (3, 4)]] 

gewünschte Ausgabe:

[(6, 0),(5, 1),(3, 2),(3, 3)]

+0

Was sollte der Ausgang sein? –

+0

[(6, 0), (5, 1), (3, 2), (3, 3)] – Joe

+5

http://stackoverflow.com/q/522563/139010 –

Antwort

2

Versuchen enumerate:

diff = [(i, j) for j, i in enumerate(r)] 

Ein weniger preferrable Weg wäre zip zu verwenden:

diff = list(zip(r, range(len(r)))) 
1

Sie suchen enumerate, die Sie das Element mit dem Index wie folgt ergibt:

>>> r = [6, 5, 3, 3] 
>>> output = [(val, indx) for indx, val in enumerate(r)] 
>>> output 
[(6, 0), (5, 1), (3, 2), (3, 3)] 

eine einfache Art und Weise zu verstehen, aufzuzählen:

diff = [(r[i], i) for i in range(len(r))] 
1

Ich denke, dass Sie für die Funktionalität von enumerate() (erhalten den Wert und Index eines iterable)

fragen
r = [6, 5, 3, 3] 
print([(val, i) for i, val in enumerate(r)]) 
Verwandte Themen