如何使用列表理解在两个列表之间创建重复项列表?

how to create a list of duplicated items between two lists using list comprehension?

该脚本应该创建一个字符串元素列表,这些元素是通过用户输入的人名,如果他们在贵宾列表中,就会问候他们。我试图创建一个列表,其中包含名称列表和 vips 列表之间的重复元素,以便将新列表存储在变量 temp 中,以便可以打印出问候语。但是没用。

我的尝试: #!/usr/bin/python3

mylist = input("Enter list of names separated by comma: ").split(",")
vip = ['Tom', 'Howard', 'Alice', 'Peter', 'Maria']

temp = [x for x in vip if x in mylist]

print([f"Hello {myvar}!" for myvar in temp])

用户输入的当前行为 'Alice, Robert, Maria, Peter, Jen' :

['Hello Alice!']

预期行为:

['Hello Alice!', 'Hello Maria!', 'Hello Peter!']

跟进 Mark M 的评论:

mylist = [x.strip() for x in input("Enter list of names separated by comma: ").split(",")]

您只需对代码进行少量更改。一种是 split(", ")。 另一个是列表理解。

mylist = input("Enter list of names separated by comma: ").split(", ")

vip = ['Tom', 'Howard', 'Alice', 'Peter', 'Maria']

temp = [name for name in mylist if name in vip]

print([f"Hello {myvar}!" for myvar in temp])

给予

['Hello Alice!', 'Hello Maria!', 'Hello Peter!']

谢谢。