我希望将用户输入加入现有列表中的项目
我尝试使用%s格式化列表中的字符串
count
from random import randint
user_name = input("Name: ")
我的输出应该是列表中与用户输入相伴的任何项目,即 输出: #你好迈克,很高兴认识你
其中“ Mike”是用户输入
答案 0 :(得分:3)
我不确定您的代码所表现出的逻辑意图,但是,这是我对要完成的工作的解释。
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
可以使内容更加清晰/易于使用。
答案 1 :(得分:2)
我更习惯于使用长格式字符串。
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
返回一个介于min和max之间的随机数choice
随机选择列表中的元素答案 2 :(得分:0)
我认为其他答案更好,但是我通过将列表转换为字符串然后再次转换为列表来完成了同样的事情。
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)