如果用户不接受邀请,如何从列表中删除姓名

时间:2020-10-16 19:41:38

标签: python list

这是我被要求做的:

创建一个程序,该程序将使用2个列表存储有关受邀参加婚礼的客人的详细信息。 方法: 设置两个列表-一个用于列出客人的姓名,另一个用于存储邀请是否被接受。注意第二个数组应该是初始设置为false的布尔元素列表 您需要询问客人的名字,然后询问他们是否参加婚礼。 打印仅参加者的列表。

这是我所做的:

names = [""]*10
accept = [False]*10
accepted = [""]*10
counter = 10

for counter in range(0,10):
  names[counter] = str(input("What is your name?"))
  accepted[counter] = input("Are you accepting the invitation?")
  
  
  if accepted[counter] == "Yes" or accepted[counter] == "yes":
    accept[counter] = True
  else:
    names[counter] = ""

print("Here is a list of peoples names whom are attending:")
print(names)

这是我老师说的:

有效,但是您能想到一种更好的方法来显示与会人员的姓名吗?

您能帮助我解决这个问题吗,我认为老师希望我从列表中删除该名字,但是我不知道该怎么做。我试过使用pop(),但我只是不理解。 :(

2 个答案:

答案 0 :(得分:0)

names列表应该包含所有被邀请的人,您不应该将名称替换为空字符串,否则名称将不完整。

使用循环,使用accepted列表中相应元素的索引来打印正在参加的人员的姓名。

也不需要accepted成为列表。只需对当前答案使用普通变量即可。

names = [""]*10
accept = [False]*10

for counter in range(0,10):
  names[counter] = input("What is your name?")
  accepted = input("Are you accepting the invitation?")
  
  if accepted.lower() == "yes":
      accept[counter] = True

print("Here is a list of peoples names whom are attending:")
for i, attending in enumerate(accept):
    if attending:
        print(names[i])

答案 1 :(得分:0)

pop()用于从列表中删除值。如果不带参数使用,它将删除最后一个值。如果提供了一个值,它将“弹出”它,或者换句话说将其删除,然后打印删除的值。