#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» , это похоже на линию разрыва в вашем выводе