3
list1=['hello','hope','hate','hack','bit','basket','code','come','chess']

私が必要とするのは:

list2=[['hello','hope','hate','hack'],['bit','basket'],['code','come','chess']]

最初の文字が同じで同じグループの場合は、サブリストに入れます。

どうすればこれを解決できますか?

4

4 に答える 4

0

ファンシーライブラリのpartition_by関数でそれを行うことができます:

from funcy import partition_by
list2 = partition_by(0, list1)

list1これは、 と同様に、 が既にソートされている場合にのみ機能することに注意してくださいitertools.groupby。がソートよりもソートされていない場合list1、パーティショニングは非効率的です。より良い方法は、group_by関数を使用することです。

from funcy import group_by
list2 = group_by(0, list1).values()
于 2014-06-04T19:27:08.657 に答える