在一些基本的python笔录中我需要帮助,好吧,我想命令单词从长到短而不重复重复,直到一切都很好为止,发生的是我不知道如何对单词进行排序字母长度相同。
答案 0 :(得分:0)
由于您要要求两个迭代器不具有相同顺序的情况,因此您必须以不同的方式进行操作。您可以咨询这个问题Sort by multiple keys using different orderings。但是由于它不包含您真正想要的内容,因此我将在这里回答:
from itertools import groupby
s = ['ddd', 'bb', 'ab', 'aa', 'cc', 'dab']
l = [sorted(list(g)) for b, g in groupby(s, key=lambda x: len(x))]
l = [e for x in l for e in x]
>>> l
['dab', 'ddd', 'aa', 'ab', 'bb', 'cc']
按长度的负序排序,但按单词的正序排序。说明:第一个列表理解将字符串列表转换为包含相同长度的字符串排序列表(按字母数字)的列表列表。第二个列表理解将列表列表解包为一个列表。