Python :按长度比较列表的列表并创建大小相等的新列表



>我有一个大列表,由多个任意长度的列表组成。我想比较每个列表长度并创建相同大小的新列表。 例如

biglist = [['x','y','z'],['a','b'],['d','f','g'],...,['r','e','w','q','t','u','i']]
expected_list= [['a','b'],[['x','y','z'],['d','f','g']],....,['r','e','w','q','t','u','i']] 

我是python的新手。 谁能建议我一种更便宜的方法来执行上述过程。 提前谢谢。

我可以建议使用迭代工具分组函数吗?

import itertools

biglist = [['x','y','z'],['a','b'],['d','f','g'],['r','e','w','q','t','u','i']]
print(list(list(i[1]) for i in itertools.groupby(sorted(biglist, key=len), len)))

哪些输出

[[['a', 'b']], [['x', 'y', 'z'], ['d', 'f', 'g']], [['r', 'e', 'w', 'q', 't', 'u', 'i']]]

看起来您想按元素lensgroupby列表:

>>> biglist = [['x', 'y', 'z'], ['a', 'b'], ['d', 'f', 'g'], ['r', 'e', 'w', 'q', 't', 'u', 'i']]
>>> expected_list = [list(b) for a, b in itertools.groupby(sorted(biglist, key=len), len)]
>>> expected_list
[[['a', 'b']], [['x', 'y', 'z'], ['d', 'f', 'g']], [['r', 'e', 'w', 'q', 't', 'u', 'i']]]

相关内容

  • 没有找到相关文章

最新更新