打印列表中的所有字符串元素,但Python中的一个除外

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

因此,我正在制定一个计划程序来随机安排NHL团队。我有一个来自大西洋分部的小组迷你名单:

atl_div = ["BOS", "BUF", "DET", "FLA"]

[当用户输入团队缩写时,他们得到打印的元素,减去列表中的团队,例如,如果我输入BUF,则用户将返回:

BOS
DET
FLA

我尝试过

input_team = input("Enter a team abbrev.:")

if input_team == "BUF":
   print(atl_div[~0])

但是那不起作用,因为~用于数字而不是列表。

我必须承认我是一个新手程序员,所以如果在我的问题中听起来像这样,我深表歉意。我们都从某处开始:)

感谢您的帮助,如有必要,随时询问更多详细信息!

python list
2个回答
1
投票

简单的list理解将产生不包含不需要元素的新list

print([team for team in atl_div if team != input_team])

这会临时创建一个新的list,除那些等于input_team的元素外。如果您想从list中永久删除有问题的元素,则可以执行以下操作:

atl_div.remove(input_team)
print(atl_div)

请注意,如果没有一个完全匹配input_team的条目,则行为会有所不同;如果不存在匹配元素,则remove将引发异常,并且仅当list中的值的实例超过一个时,它才会删除一个副本。 list理解将静默删除该值的所有副本,并且不在乎是否没有任何开头。


1
投票
input_team = input('Enter a team abbrev.:')
print('\n'.join([team for team in atl_div if team != input_team]))

编辑:更新的打印格式


推荐问答