所以我在做一个随机安排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])
但这行不通,因为~
用于数字而不是列表。你知道吗
我必须承认我是一个有点新手程序员,所以如果我的问题听起来像这样,我很抱歉。我们都从某处开始:)
感谢您的帮助,如有必要,请随时询问更多细节!你知道吗
一个简单的
list
理解将产生一个新的list
,没有不需要的元素:这使得一个新的
list
临时包含除input_team
之外的所有元素。*
将其解压为print
的顺序位置参数,sep="\n"
告诉print
在打印时在每个元素之间放置一个换行符。如果要从list
中永久删除有问题的元素,可以执行以下操作:请注意,如果没有完全匹配
input_team
的条目,remove
将在不存在匹配元素的情况下引发异常,并且如果list
中有多个值实例,它将只删除一个副本。list
理解将默默地删除该值的所有副本,并且不关心是否有任何副本可以开始。你知道吗两种简单的方法:
最简单的方法是一个接一个地浏览列表,并打印任何一个不是您显式希望不要选择的字符串。你知道吗
一种可以说是更具python风格的方法来做同样的事情,虽然效率不高(对于这样一个小列表来说,效率没有那么重要),但是你可以做一个列表理解,然后做一个类似的列表。这样,你就可以列一个新的名单,而这个名单上没有你要找的团队。你知道吗
然后可以逐个元素打印出该列表:
这可以简化为同一问题的以下版本,也许可读性稍差一些:
在这两种解决方案中,您都可以更宽容一些,并将
.upper()
之类的字符串转换应用到input_team
以允许它,这样输入buf
的用户仍然可以获得预期的列表BOS, DET, FLA
。你知道吗对于第一个答案,可以这样做:
编辑:更新的打印格式
相关问题 更多 >
编程相关推荐