Python 如果用户键入ex.INF,则会打印列表中以INF开头的所有单词。我如何限制只打印某些单词?
我有一个列表,其中包含以“INF…”和“INFO…”开头的单词 当用户输入“INF”时,我不希望以INFO开头的单词也打印出来。我如何限制“信息”字不打印Python 如果用户键入ex.INF,则会打印列表中以INF开头的所有单词。我如何限制只打印某些单词?,python,list,limit,Python,List,Limit,我有一个列表,其中包含以“INF…”和“INFO…”开头的单词 当用户输入“INF”时,我不希望以INFO开头的单词也打印出来。我如何限制“信息”字不打印 weirdList = {"INF432", "INF678", "INFO123", "INFO654"} filtered_list = [] for word in weirdList if word[0:3] == input: filtered_list.append(word) 我的愿望是,只有“INF43
weirdList = {"INF432", "INF678", "INFO123", "INFO654"}
filtered_list = []
for word in weirdList
if word[0:3] == input:
filtered_list.append(word)
我的愿望是,只有“INF432”和“INF678”被打印出来,而不是“INFO…”当用户首先要求输入以“INF”开头的单词时,
weirdList
是一个集合
而不是列表
。代码不起作用的原因是,所有元素的条件都是True
:
将输出'INF432'[0:3]
'INF'
还将输出'INFO123'[0:3]
'INF'
INFO
开头的项目:
weirdList={“INF432”、“INF678”、“INFO123”、“INFO654”}
过滤的_列表=[]
对于古怪列表中的单词:
如果不是word.startswith('INFO'):
筛选的\u列表。追加(word)
这也可以通过列表理解来实现:
weirdList = ["INF432", "INF678", "INFO123", "INFO654"]
filtered_list = [word for word in weirdList if not word.startswith('INFO')]
请注意,在我的上一个示例中,我将weirdList
更改为实际列表
如果要根据用户输入将项目添加到列表中,并忽略INFO
项目,可以这样做:
user\u item\u list=[]
用户输入=输入('在此处输入项:')
如果不是用户_input.startswith('INFO'):
用户\项\列表。追加(用户\输入)
打印(用户项目列表)
从您的示例中,我可以看出您只希望保留以“INF”开头并后跟数字的项目。例如,“INFO”是“INF”,后跟“O”
这可以通过以下方式实现:
weirdList = {"INF432", "INF678", "INFO123", "INFO654"}
filtered_list = []
word1=input("enter something: ")
for word in weirdList:
if word.startswith(word1) and word.replace(word1,"")[0].isnumeric():
filtered_list.append(word)
print(filtered_list)
输出:
enter something: INF
['INF432', 'INF678']
这种方法还消除了“INFS01”等,适用于“INF”以外的其他标准