Как объединить элементы списка в строки?

#python

Вопрос:

У меня здесь есть список, в котором мне нужно ввести только 10 букв или строк. У меня возникла проблема с разделением списка.

 print ("Please input letter: n")
num_string = []
num = 10
for i in range (0,num):
    element = str(input(str(i   1)   ". "))
    num_string.append(element)

string = ' '.join([str(item) for item in num_string])
print (string)
 

В моем коде, например, я ввел b c d e f g h i j, так как это всего 10 входов. Вместо вывода, такого как b c d e f g h i j, потому что я использовал метод объединения, я хочу иметь новую строку для каждого списка. Поэтому я хочу, чтобы это было так

a

b

c

d

e

f

g

h

i

j

Комментарии:

1. string_ = 'n'.join([str(item) for item in num_string]) , замените пробел новой строкой

Ответ №1:

Вы почти на месте, просто вместо того, чтобы присоединять пробелы , присоединяйтесь к новой строке, также вам не нужно преобразовывать каждый элемент в строку, потому что каждый элемент уже является строкой, потому input что всегда возвращает строку (в Python3) (так что это избыточно: str(input()) , это точно так же, как: input() ):

 string = 'n'.join(num_string)
 

Полный пример (удалено избыточное str ):

 print("Please input letter: n")
num_string = []
num = 10
# the 0 isn't necessary either but
# I guess for clarification it can stay
for i in range(0, num):
    element = input(str(i   1)   ". ")
    num_string.append(element)

string = 'n'.join(num_string)
print(string)
 

В качестве альтернативы вы можете использовать это (вместо двух последних строк в приведенном выше примере кода).:

 print(*num_string, sep='n')
 

И если вы действительно хотите сократить код (он может быть короче 3 строк):

 print("Please input letter: n")
num = 10
print('n'.join(input(f'{i   1}. ') for i in range(num)))
 

Ответ №2:

 print ("Please input letter: n")
num_string = []
num = 10
for i in range (0,num):
    element = str(input(str(i   1)   ". "))
    num_string.append(element)

string = 'n' .join([str(item) for item in num_string])
print (string)
 

Используйте «n» , это похоже на линию разрыва в вашем выводе