我被问到了这个问题并坚持下去。
W = ['cat', 'audiotape', 'businesswoman', 'dog']
编写列表推导以有效地从随机的单词列表中提取w, 最长的单词lw,包含每个元音的至少一个实例。 如果需要,在答案中包含帮助函数。 (对于上面给出的w,lw是“女商人”。)
到目前为止我得到的是
lw = max [len(w)for n in w]
我知道这不是很多我不明白如何找到包含所有元音的单词以及如何打印最长的单词。我是Python的新手。
答案 0 :(得分:1)
all()
如果列表中的所有项都为True
>>> print(all([True, True, True, True]))
True
>>> print(all([False, True, True, False]))
False
在上述问题中,我们需要使用all vowels
检查string (ex: businesswoman)
中是否存在all
,如下所示:
>>> all(t in "businesswoman" for t in 'aeiouu')
True
同样,我们需要对W
中的所有项目执行此操作,如下所示:
>>> W = ['cat', 'audiotape', 'businesswoman', 'dog']
>>> [x for x in W if all(t in x for t in 'aeiouu')]
['audiotape', 'businesswoman']
>>> sorted([x for x in W if all(t in x for t in 'aeiouu')], key=len)[-1]
'businesswoman'
详细了解all()
答案 1 :(得分:0)
对于这项运动:
W = ['cat', 'audiotape', 'businesswoman', 'dog']
lw = sorted([x for x in W if all(y in x for y in 'aeiou')], key=lambda x:len(x))[-1]