it-swarm.com.de

Zugriff auf Element in einer Liste von Listen

Wenn ich eine Liste von Listen habe und nur ein einzelnes Element in dieser Liste bearbeiten möchte, wie würde ich das tun?

Zum Beispiel: 

List1 = [[10,13,17],[3,5,1],[13,11,12]]

Was ist, wenn ich einen Wert nehmen (etwa 50) und nur die erste Unterliste in List1 betrachten und 10 (den ersten Wert) abziehen, dann 13 hinzufügen und dann 17 abziehen soll?

25
John

Sie können auf die Elemente in einer Liste von Listen zugreifen, indem Sie zunächst angeben, an welcher Liste Sie interessiert sind, und dann das gewünschte Element dieser Liste angeben. Beispielsweise ist 17 das Element 2 in der Liste 0. Dies ist list1[0][2]:

>>> list1 = [[10,13,17],[3,5,1],[13,11,12]]
>>> list1[0][2]
17

Dein Beispiel wäre also

50 - list1[0][0] + list1[0][1] - list1[0][2]
35
arshajii

Sie können itertools.cycle verwenden:

>>> from itertools import cycle
>>> lis = [[10,13,17],[3,5,1],[13,11,12]]
>>> cyc = cycle((-1, 1))
>>> 50 + sum(x*next(cyc) for x in lis[0])   # lis[0] is [10,13,17]
36

Hier würde der Generatorausdruck in sum so etwas zurückgeben:

>>> cyc = cycle((-1, 1))
>>> [x*next(cyc) for x in lis[0]]
[-10, 13, -17]

Sie können auch Zip hier verwenden:

>>> cyc = cycle((-1, 1))
>>> [x*y for x, y  in Zip(lis[0], cyc)]
[-10, 13, -17]
4
List1 = [[10,-13,17],[3,5,1],[13,11,12]]

num = 50
for i in List1[0]:num -= i
print num
1
Joran Beasley
50 - List1[0][0] + List[0][1] - List[0][2]

List[0] gibt Ihnen die erste Liste in der Liste (probieren Sie print List[0]). Dann indexieren Sie erneut, um die Elemente dieser Liste zu erhalten. Stellen Sie sich das so vor: (List1[0])[0].

0
Donald Miner
for l in list1:
    val = 50 - l[0] + l[1] - l[2]
    print "val:", val

Durchlaufen Sie die Liste und führen Sie die gewünschten Operationen in der Unterliste durch.

0
rajpy

Dieser Code druckt jede einzelne Nummer:

for myList in [[10,13,17],[3,5,1],[13,11,12]]:
    for item in myList:
        print(item)

Oder für Ihren speziellen Anwendungsfall:

((50 - List1[0][0]) + List1[0][1]) - List1[0][2]
0
Phil