第二个项目后列表插入输出上的重复项目

问题描述 投票:0回答:2

我有一份进入酒店的人员名单。

  • 如果这是他们的第一个条目,该程序应该说(“欢迎”,名称)
  • 如果这是他们的第二个条目,程序应该说(“很高兴见到你”,名字)。

我的问题是第二个问候语的顺序不正确。如何在第二次出现名字后插入第二个问候语?

enter = ["David", "Orly", "Neta", "Peleg", "Carol", "Ezra", "Irina", 
         "Orly", "Shir", "Neta", "Sheli", "Neta", "Ezra", "Yosi"]

我的预期输出是:

Welcome  David
Welcome  Orly
Welcome  Neta
Welcome  Peleg
Welcome  Carol
Welcome  Ezra
Welcome  Irina
Good to see you again Orly
Welcome  Shir
Good to see you again Neta
Welcome  Sheli
Good to see you again Neta
Good to see you again Ezra
Welcome  Yosi

这是我的代码:

enter = ["David", "Orly", "Neta", "Peleg", "Carol", "Ezra", "Irina", "Orly", "Shir", "Neta", "Sheli", "Neta", "Ezra", "Yosi"]

i = 0

for i in enter:
    print ("welcome", i)
    if enter.count(i)>1:
        print("good to see you again",i)

而我目前的错误输出:

welcome David
welcome Orly
good to see you again Orly
welcome Neta
good to see you again Neta
welcome Peleg
welcome Carol
welcome Ezra
good to see you again Ezra
welcome Irina
welcome Orly
good to see you again Orly
welcome Shir
welcome Neta
good to see you again Neta
welcome Sheli
welcome Neta
good to see you again Neta
welcome Ezra
good to see you again Ezra
welcome Yosi
python
2个回答
2
投票

count会告诉你他们在列表中的次数,但不是这是否是第一次。我建议您在看到它们时将人员添加到Set中,然后您可以通过检查它们是否在Set中来检查它们之前是否已被看到。


2
投票

如果一个名字在整个列表中不止一次,那么您不仅要考虑入口事件的一部分,这些事件到目前为止“已经发生”了。 除此之外,万一有人的数量> 1你打印两者,'欢迎'和'很高兴再见到你'。

这种方式效果更好:

for i, name in enumerate(enter):
    if name in enter[:i]:
        print("Good to see you again", name)
    else:
        print ("Welcome", name)
© www.soinside.com 2019 - 2024. All rights reserved.