我收到了如下问题
"标准输入由一系列单词组成,每行一个。 写一个名为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
答案 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'