Python: разделить вводимый текст на {Letter} - PullRequest
0 голосов
/ 17 июня 2020

Допустим, у меня есть вход «Apple». Как мне разделить его на {A} {p} {p} {l} {e}? Буквы здесь обозначают переменные, которые используются в коде, который печатается в конце.

Изменить: в настоящее время я пытаюсь выучить python, поэтому для того, что я хочу делать, нет специального варианта использования. Но на самом деле все, что я хочу, - это чтобы пользователь ввел слово «Apple», и он получил из него 5 слов. Подобно A означает "Привет" et c. Я уже назначил переменные. Насколько я знаю, code = f '{A}' затем распечатал бы Apple. поэтому мне нужно, чтобы ввод был разделен на каждую букву одну за другой с {} вокруг нее.

Ответы [ 6 ]

2 голосов
/ 17 июня 2020

Используйте f-строки!

your_string = 'Apple'
new_string = "".join([f"{{{s}}}" for s in your_string])

Используя F-строки, вы можете помещать переменные в строку. В этом понимании списка мы l oop над вашей входной строкой. Для каждой буквы в вашей строке мы помещаем ее в эту странно выглядящую отформатированную строку f"{{{s}}}". Двойная {{ - это способ избежать фигурной скобки в f-строках, в то время как одиночная { начинает открывать место, где вы хотите, чтобы ваши переменные были.

Допустим, вы хотите сделать это в python <= 3.5, вы можете сделать это по-разному ... Вы можете перебирать строку, добавлять внутренние фигурные скобки и использовать конкатенацию строк для первой и последней фигурных скобок. </p>

new_string = "{" + "}{".join([s for s in your_string]) + "}"

Последняя и, вероятно, наиболее читаемый, но более медленный способ - использовать простой for-l oop

new_string = ""
for letter in your_string:
    new_string += "{" + letter + "}"
1 голос
/ 17 июня 2020

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

bar = {}
foo = 'Apple'
for l in foo:
    bar[l] = l
print(bar)

создаст словарь клавиш, соответствующих вашим буквам, которые содержат ваши буквы, поэтому print (bar) выведет: {'A': 'A', 'p': 'p', 'l': 'l', 'e': 'e'}

0 голосов
/ 17 июня 2020

Вы можете сделать это так:

text="Apple"
stext=list(text) #split character in "text" string into list of character and store the list in "stext"

или напрямую:

stext=list("Apple")

или даже просто:

print(list("Apple"))

0 голосов
/ 17 июня 2020
["{}{}{}".format("{", letter, "}") for letter in list("Apple")]
0 голосов
/ 17 июня 2020
>>> w = list('Apple') #['A', 'p', 'p', 'l', 'e']
>>> print(''.join(['{' + i + '}' for i in w]))
{A}{p}{p}{l}{e}
>>> print(''.join([f'{{{i}}}' for i in 'Apple']))
{A}{p}{p}{l}{e}
0 голосов
/ 17 июня 2020

Поскольку строка уже является массивом сортировки, вы можете просто перебирать его:

string = 'apple'
for char in string:
    print(char)

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