Python字典匹配单词

时间:2016-12-07 08:57:12

标签: python dictionary

我收到了如下问题

"标准输入由一系列单词组成,每行一个。 写一个名为fruit.py的Python脚本,它只输出那些水果的单词。只有五个水果:苹果,对,橙,香蕉和樱桃。"例如如果标准输入是"狗猫苹果蛇樱桃"标准输出将是" apple cherry"。我已经有一段时间没有使用词典了,所以任何帮助都会非常感激!

import sys

fruit = {
   "apple": True,
   "pair": True,
   "orange": True,
   "banana": True,
   "cherry": True,
}

n = sys.stdin.readlines()

i = 0
while i < len(n):
   if n[i] in fruit:
      fruit[n[i]] = False
      sys.stdout.write() (n[i])
   i = i + 1

3 个答案:

答案 0 :(得分:0)

您的案例中不需要字典,只需一个简单的列表即可:

fruits = ['apple', 'pair', 'orange', 'banana', 'cherry']

现在,您可以检查项目是否在此列表中,如下所示:

if item in fruits:
    # do something!

在您的情况下,您可以做的是:

for item in n:
   if item in fruits:
      sys.stdout.write(n)

答案 1 :(得分:0)

通常你会使用一个集合或列表来存储水果,但是当水果列表真的很长时,就时间复杂度而言,拥有字典是正确的选择。这个代码是

import sys

fruit = {
   "apple": True,
   "pair": True,
   "orange": True,
   "banana": True,
   "cherry": True,
}

n = sys.stdin.readlines()

i = 0
while i < len(n):
   if fruit[n[i]]:
      sys.stdout.write() (n[i])
   i = i + 1

当然有很多有效的方法可以做到这一点,但我只是给出了代码中最小变化的答案。

答案 2 :(得分:0)

您可以尝试:

>>> fruits = ["apple", "pair", "orange", "banana", "cherry"]
>>> n = input("Enter statement :")
Enter statement :dog cat apple snake cherry
>>> n_list = n.split()
>>> for i in n_list:
    if i in fruits:
        fruits_found.append(i)


>>> fruits_found
['apple', 'cherry']
>>> " ".join(fruits_found)
'apple cherry'