列表中的重复项在第二项之后插入输出

2024-09-25 00:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份进入旅馆的人的名单

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

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

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

Tags: toyoudavidgoodenterseewelcomeagain
2条回答

如果一个名字不止一次出现在整个名单中,而不仅仅出现在到目前为止“发生”的入学活动中,你就可以计算在内。
除此之外,如果有人的计数是>;你可以打印“欢迎”和“很高兴再次见到你”

这样效果更好:

for i, name in enumerate(enter):
    if name in enter[:i]:
        print("Good to see you again", name)
    else:
        print ("Welcome", name)

count将告诉您它们在列表中出现了多少次,但不会告诉您这是否是第一次。我建议你将看到的人添加到一个集合中,然后你可以通过检查他们是否在集合中来检查他们以前是否见过

相关问题 更多 >