Nehmen wir an:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Das Ergebnis, das ich suche, ist
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
und nicht
r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Nehmen wir an:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Das Ergebnis, das ich suche, ist
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
und nicht
r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
solution1 = map(list, zip(*l))
solution2 = [list(i) for i in zip(*l)]
solution3 = []
for i in zip(*l):
solution3.append((list(i)))
print(*solution1)
print(*solution2)
print(*solution3)
# [1, 4, 7], [2, 5, 8], [3, 6, 9]
more_itertools.unzip()
ist leicht zu lesen und funktioniert auch mit Generatoren.
import more_itertools
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
r = more_itertools.unzip(l) # a tuple of generators.
r = list(map(list, r)) # a list of lists
oder gleichwertig
import more_itertools
l = more_itertools.chunked(range(1,10), 3)
r = more_itertools.unzip(l) # a tuple of generators.
r = list(map(list, r)) # a list of lists
matrix = [[1,2,3],
[1,2,3],
[1,2,3],
[1,2,3],
[1,2,3],
[1,2,3],
[1,2,3]]
rows = len(matrix)
cols = len(matrix[0])
transposed = []
while len(transposed) < cols:
transposed.append([])
while len(transposed[-1]) < rows:
transposed[-1].append(0)
for i in range(rows):
for j in range(cols):
transposed[j][i] = matrix[i][j]
for i in transposed:
print(i)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.