【发布时间】:2025-12-07 23:50:02
【问题描述】:
因为我是初学者,请轻轻地陪我。我阅读了按字母顺序排序字符串列表忽略元音的答案。但我不太明白这种方法是如何排序的:
l = ['alpha', 'beta']
vowels = ['aeiouAEIOU']
sorted(l, key=lambda s: ''.join(c for c in s if c not in vowels))
我的问题:
- 排序如何在字符级别而不是单词级别循环而不拆分单词?
- 如果 c 不是元音,然后将字母连接回单词,那么他们如何对有元音的单词进行排序?其他带有元音的单词会发生什么变化?
【问题讨论】:
-
没有“词级排序”这回事。单词总是按字符排序(有什么替代方法?)。你的第二个问题不清楚。
-
只需将元音改为
vowels = 'aeiouAEIOU'。现在您正在询问其中一个字母是否等于子列表。 -
好的!我现在明白了。 lambda 所做的是消除单词中出现的元音,然后将剩余的字符串传回进行排序。