Как напечатать строковый кортеж без запятых

#python #string #function #tuples

Вопрос:

Я новичок в Python, если у меня есть этот кортеж

 testGrid = [['p','c','n','d','t','h','g'],
    ['w','a','x','o','a','x','f'],
    ['o','t','w','g','d','r','k'],
    ['l','j','p','i','b','e','t'],
    ['f','v','l','t','o','w','n']]
 

Как я могу распечатать его так, чтобы он читался без запятых и пробелов? И новые строки после каждой строки?

 pcndthg
waxoaxf
otwgdrk
ljpibet
fvltown
 

Ответ №1:

Используется join() для объединения всех строк в списке.

 for row in testGrid:
    print(''.join(row))
 

или измените разделитель по умолчанию на пустую строку.

 for row in testGrid:
    print(*row, sep='')
 

Ответ №2:

Ответ Бармара, вероятно, является наиболее эффективным из возможных способов сделать это на Python, но ради изучения логики программирования вот ответ, который проведет вас через процесс шаг за шагом:

Во-первых, во вложенном списке обычно требуется 2 слоя циклов (если не используются вспомогательные или встроенные функции). Следовательно, наш первый слой цикла for будет содержать список 1D в качестве элемента.

 for row in testGrid:
    print("something")
    # row = ['p','c','n','d','t','h','g']
 

Поэтому в этом цикле мы пытаемся перебрать каждый алфавит в строке:

 for char in row:
    print(char)
    # char = 'p'
 

Поскольку встроенная print() функция в Python по умолчанию переместится на следующую строку, мы пытаемся использовать строковую переменную для «стекирования» всех символов перед ее выводом:

 for row in testGrid:

    # loop content applies to each row

    # define string variable
    vocab = ""

    for char in row:
        # string concatenation (piecing 2 strings together)
        vocab = vocab   char

    # vocab now contains the entire row, pieced into one string
    print(vocab)

    # remark: usually in other programming languages, moving cursor to the next line requires extra coding
    # in Python it is not required but it is still recommended to keep this in mind
 

Надеюсь, это поможет вам лучше понять концепции и потоки программирования!