Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果用户键入ex.INF,则会打印列表中以INF开头的所有单词。我如何限制只打印某些单词?_Python_List_Limit - Fatal编程技术网

Python 如果用户键入ex.INF,则会打印列表中以INF开头的所有单词。我如何限制只打印某些单词?

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

我有一个列表,其中包含以“INF…”和“INFO…”开头的单词

当用户输入“INF”时,我不希望以INFO开头的单词也打印出来。我如何限制“信息”字不打印

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”以外的其他标准