Как добавить пользовательский ввод к элементу в списке в Python3 - PullRequest
0 голосов
/ 15 января 2019

Я хочу, чтобы пользовательский ввод был присоединен к элементу в существующем списке

Я попытался отформатировать строку в списке, используя% s

from random import randint
user_name = input("Name: ")

Я хочу, чтобы% s было именем, введенным пользователем

my_list = ["Hello %s, nice to meet u",  
        "%s! what a wonderful name",
        "welcome %s"]
for m in my_list:
    print(randint(my_list)% user_name)

мой вывод должен состоять из любого элемента в списке, сопровождаемого пользовательским вводом, т.е. выход: # Привет, Майк, рад познакомиться с тобой

где "Mike" - пользовательский ввод

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Я не уверен, для чего предназначена логика, которую демонстрирует ваш код, однако, вот моя интерпретация того, что вы хотите сделать.

from random import randint

user_name = input("Name: ")

my_list = ["Hello %s, nice to meet u",
        "%s! what a wonderful name",
        "welcome %s"]

print(choice(my_list) % user_name)

При этом будет напечатан один из элементов списка (в произвольном порядке) с вводом, добавленным в нужное место.

Примеры:

Name: Tim
Hello Tim, nice to meet u

Name: Pam
Pam! what a wonderful name

Name: Jen
welcome Jen

Редактировать

Используйте choice вместо randint для ясности / простоты / и т.д.

0 голосов
/ 15 января 2019

Я думаю, что другие ответы лучше, но я сделал то же самое, преобразовав список в строку, а затем снова в список.

from random import randint
user_name = input("Name: ")

my_list = ["Hello %s, nice to meet u",  "%s! what a wonderful name", "welcome %s"]

# convert/flatten the list to string
list_to_string =  "::".join(str(x) for x in my_list)

# Replace %s with the username
replaced_string = list_to_string.replace("%s",user_name )

# convert string to list 
string_to_list = replaced_string.split("::")

print(string_to_list)
0 голосов
/ 15 января 2019

Я более привык использовать длинные строки формата.

from random import choice
user_name = input("Name: ")
my_list = ["Hello {name}, nice to meet u",  
        "{name}! what a wonderful name",
        "welcome {name}"]
for m in my_list:
    print(choice(my_list).format(name=user_name))

Но изменение вашего randint на choice также должно работать в вашем случае.

  • randint возвращает случайное число от мин до макс
  • choice случайным образом выбирает элемент в списке
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...