如何在Python3中将用户输入附加到列表中的项目

时间:2019-01-14 22:38:23

标签: python python-3.x list append

我希望将用户输入加入现有列表中的项目

我尝试使用%s格式化列表中的字符串

count

我希望%s为用户输入的名称

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

我的输出应该是列表中与用户输入相伴的任何项目,即    输出:          #你好迈克,很高兴认识你

其中“ Mike”是用户输入

3 个答案:

答案 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)