У меня есть списки, подобные этому:
[review_v001,
review_v002,
review_v003,
layerpack_review_v004,
layerpack_review_v001,
x_v001,
x_v002,
x_v003]
И мне нужно перегруппировать их в новые списки, сгруппированные по символам перед подчеркиванием, то есть [: -5], чтобы они выглядели так:
[review_v001,
review_v002,
review_v003]
[layerpack_review_v004,
layerpack_review_v001]
[x_v001,
x_v002,
x_v003]
Итак, чтобы перефразировать, мне нужно перебрать данный список, определить, какие элементы списка имеют одинаковый префикс от начала строки до номера версии (например, _v001), а затем реорганизовать этиэлементы в новых списках, где группировка основана на этом общем префиксе.
Это одна из моих попыток, которая позволяет идентифицировать и почти группировать дубликаты, за исключением того, что они не присваивают им имена правильно, когда они группируют их.
fullstringlst=
[review_v001,
review_v002,
review_v003,
layerpack_review_v004,
layerpack_review_v001,
x_v001,
x_v002,
x_v003]
prefixList = []
for s in fullstringlst:
p = s[:-5]
prefixList.append(p)
sublists = []
for item in set(prefixList):
sublists.append([p] * prefixList.count(item))
print sublists