Итак, моя проблема, я хочу перенести мой список строк в столбцы , например:Python, список строк, строк на столбцы
[ "AAA", "BBB", "CCC"] => [«ABC», «ABC», «ABC»]
не может найти эффективный способ сделать это.
Итак, моя проблема, я хочу перенести мой список строк в столбцы , например:Python, список строк, строк на столбцы
[ "AAA", "BBB", "CCC"] => [«ABC», «ABC», «ABC»]
не может найти эффективный способ сделать это.
Вы можете сделать простое использование zip
и распаковка:
strs = ["AAA", "BBB", "CCC"]
print zip(*strs)
Выход будет кортежи, хотя:
[('A', 'B', 'C'), ('A', 'B', 'C'), ('A', 'B', 'C')]
Для строк вы можете использовать:
strs = ["AAA", "BBB", "CCC"]
print map(''.join, zip(*strs))
# for python 3 use: list(map(''.join, zip(*strs))) # thanks @cesar
Выход теперь список строк:
[ 'ABC', 'ABC', 'ABC']
''.join
используется для отображения кортежей строк.
Если вы используете python3, функция map возвращает объект карты, поэтому, если вам нужно список, который вы перечислили в списке вызовов (map (''. join, zip (* strs)) – Cesar
a = ["AAA", "BBB", "CCC"]
print ([''.join(i) for i in zip(*a)])
Так это предполагает, что вы имеете дело со строками в вашем примере, но вы могли бы расширить алгоритм для работы с любым типом данных вы столкнетесь, логика останется прежней.
listRows = ["AAA", "BBB", "CCC"]
transList = []
tempString = ''
for s in range(0,len(listRows)):
for i in range(0, len(listRows)):
tempString = tempString + listRows[i][s]
transList.append(tempString)
tempString = ''
print(transList)
Где transList окончательный список вы хотите
Woah @Reut Sharabani и Abhishek, я не знал о zip и карте, это аккуратно !!, если бы у меня было достаточно репутации, я бы Вверх Голосуй за тебя, ха-ха !!! – BLang
'почтовый индекс (* (список (I) для I в массиве))' –
@TomYates: Почему конвертировать в 'list'? 'zip (* array)' эквивалентен без лишних конверсий (хотя вам нужно преобразовать 'zip'' tuple 'обратно 'в' str'. – ShadowRanger