【发布时间】:2020-10-25 04:00:39
【问题描述】:
当我最近开始学习 python 3 时,我遇到了 Comprehensions,这真的让我很感兴趣,我尝试将一些现有的循环程序转换为带有理解的循环。我一直没有成功地试图让其中一个程序以理解的方式运行。如果单词以元音开头,它会从输入的字符串列表中返回单词列表。
下面给出了可以运行但没有使用 Python 3.0 解析的旧程序。
output_list= []
list_vowel = ['a','e','i','o','u']
for word in input_list:
if word[0] in list_vowel:
output_list.append(word)
print(output_list)
当我尝试使用理解编写相同的程序时,我每次运行代码时都会得到空列表 [],无论 i/p 列表是否为 ['a','e','i','o','u'] or ["aeiou"] etc
下面给出了使用理解的代码
import ast,sys
input_str = sys.stdin.read()
input_list = ast.literal_eval(input_str)
output_list = []
list_vowel = ["aeiou"]
output_list = [ x for x in input_list if x[0] in list_vowel ]
# for i in list_vowel if x[0] == list_vowel[i]]
print(output_list)
我做错了什么? 或者如果存在我们不能使用 python 推导的情况?
【问题讨论】:
标签: python-3.x list-comprehension