Как изменить порядок 2-го списка в python - PullRequest
1 голос
/ 06 мая 2020

Я работаю над методом нарезки в python. Где я разбиваю текст текстового файла по столбцам. Я хочу изменить порядок элементов, то есть, если текст разбивается на столбцы A, B и C, я хочу теперь отображать текст в столбцах A, C и B. Моя программа выглядит следующим образом

import sys
def first(aList):
    for row in colList:
        for item in row:
            print(item, end="        ")
        print()




ncolumns = int(input("Enter Number of Columns:"))
file = open("alice.txt", "r")

rowL= []
colList= []

print(" ")
print(" ")
print("++++++++++++++++++++++++++++++++++++++")

while True:
    line = file.readline()
    if not line:
        break

    numElements = len(line.rstrip())
    _block= numElements//ncolumns
    block = _block
    start=0
    rowL =[]

    for count in range(0,(ncolumns)):
        columnChars = ""
        for index in range(start,block):
          columnChars += line[index]  

        rowL.append(columnChars)

        start = block
        block = block + _block

        if (block < numElements):
            if((block + _block)>numElements):
                block = numElements
    colList.append(rowL)
file.close()
first(colList)  

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Здесь вы используете назначение среза .

lst= [0,1,2]
lst[1:]=lst[1:][::-1]
print(lst)
# [0, 2, 1]

Взгляните на How slicing as assignment works, если вы его не получите.

0 голосов
/ 06 мая 2020

Просто создайте новый список, индексирующий элементы из старого списка.

То есть

old_list = [1, 2, 3]
new_list = [old_list[0], old_list[2], old_list[1]]

, что даст new_list как [0, 3, 2].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...