"Ich verstehe, was Sie sagen..lets nehme an, dass ich die Liste der Listen habe ... wie kann ich eine Liste von Listen mit den Unterschieden zwischen den Werten aus jeder Liste von einem - Thanos Smar 1 erstellen Stunde vor "
Wenn die Liste eine [0] genannt wird oder a macht keinen Unterschied, Sie tun es genau die gleiche Weise, außer Sie Schleife über a [0] [x] .. a [1] [ x] ... statt a [x] ... b [x] .... Es wäre nicht einfacher, sie als separate Listen zu haben, es ist genau dasselbe. Grundsätzlich haben Sie sie bereits als separate Variablen, sie werden nur als [0] ... a [1] und so weiter bezeichnet.
EDIT - Dies ist ein Weg sein würde, es zu tun:
>>> mylist = [[6, 6, 6], [1, 1, 1], [1, 2, 3]]
>>> mylist2 = list(mylist[0])
>>> for x in range(1, len(mylist)):
for y in range(0, len(mylist[x])):
mylist2[y] = mylist2[y] - mylist[x][y]
>>> mylist2
[4, 3, 2]
>>>
mit mylist2 = list (mylist [0]) macht es eine neue Liste und nicht die Werte der ursprünglichen ändern.
EDIT 2:
Dies sollte es sein.
>>> myList = [[10, 5, 6, 7, 8], [9, 5, 6, 7, 8], [8, 5, 6, 7, 8]]
>>> myList2 = []
>>> for x in range(0, len(myList)):
subList = []
for y in range(0, len(myList[x])-1):
subList.append(myList[x][0] - myList[x][y+1])
myList2.append(subList)
>>> myList2
[[5, 4, 3, 2], [4, 3, 2, 1], [3, 2, 1, 0]]
>>>
myList2 ist eine Liste von Listen mit den subtrahierten Werten des ersten Elements jeder Liste in myList. Wenn dies nicht der Fall ist, sollten Sie in der Lage sein, es einfach so zu modifizieren, dass es macht, was Sie wollen.
EDIT3:
Ok, also das ist, was Sie dann wollen. Ich bin mir sicher, dass ein wirklich guter Programmierer das mit Generatoren oder etwas eleganter machen könnte. Ich habe mich noch nicht damit beschäftigt, da ich ein Anfänger bin, aber es funktioniert.
myList = [[10, 5, 6, 7, 8], [9, 5, 6, 7, 8], [8, 5, 6, 7, 8]]
myList2 = []
for x in range(len(myList)):
subList1 = []
for y in range(len(myList[x])):
subList2 = []
for z in range(len(myList[x])):
subList2.append(myList[x][y] - myList[x][z])
subList1.append(subList2)
myList2.append(subList1)
# - First loop goes through all lists in myList
# - Create an empty subList to append lists of subLists to
# - Second loop goes through all positions in list x of mylist
# - Create another empty subList2 to append the actual values to
# - Third loop does the same as loop 2.
# - Each value in myList from the second loop (y) gets - each value from myList
# (including itself) from the third loop (z) and appended to a subList2
# - The subList2 is appended to subList1 creating a subList of subLists
# - Finally the list of subLists is appended to myList2 for each turn of the
# first loop
Dies wird die resultierende Liste von Listen von Listen geben:
myList2
[[[0, 5, 4, 3, 2], [-5, 0, -1, -2, -3], [-4, 1, 0, -1, -2], [-3, 2, 1, 0, -1], [-2, 3, 2, 1, 0]],
[[0, 4, 3, 2, 1], [-4, 0, -1, -2, -3], [-3, 1, 0, -1, -2], [-2, 2, 1, 0, -1], [-1, 3, 2, 1, 0]],
[[0, 3, 2, 1, 0], [-3, 0, -1, -2, -3], [-2, 1, 0, -1, -2], [-1, 2, 1, 0, -1], [0, 3, 2, 1, 0]]]
myList2 [0] [0] enthält alle Werte von myList [0] [0] im Vergleich zu myList [0] [x]
myList [0] [1] enthält alle Werte von myList [0] [1] im Vergleich zu myList [0] [x]
und so weiter ...
Wenn Sie deutlicher von dem ausgegangen wären, was Sie von Anfang an erreichen wollten, dann hätte ich sicher, dass einer der guten Programmierer Sie auch beantwortet hätte. Ich mache das, weil ich die Übung brauche.
Müssen Sie eine for-Schleife verwenden? Es ist möglicherweise einfacher, nur auf die verschachtelten Listen nach Index zu verweisen. Zum Beispiel '' a [0] = myOneDimensionalListOne'' und '' a [1] = myOneDimensionalListTwo''. – Igor
Verwenden Sie ein einfaches Auspacken 'b0, b1 = a' – Kasramvd
@Kasramvd woah, ich dachte du nur diese mit Tupeln tun könnte. Ordentlich! Gut zu wissen. – Igor