#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
Надеюсь, это поможет вам лучше понять концепции и потоки программирования!