Вот более простой ответ, который сработал для меня.
Во-первых, за комментарий Python Dev выше, setuptools не требуется:
package_data is also available to pure distutils setup scripts
since 2.3. – Éric Araujo
Это здорово, потому что установка требования setuptools на ваш пакет означает, что вам также придется его установить. Короче:
from distutils.core import setup
setup(
# ...snip...
packages = ['pkgname'],
package_data = {'pkgname': ['license.txt']},
)
import itertools
lst = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
w = 'WORD'
spl = [list(y) for x, y in itertools.groupby(lst, lambda z: z == w) if not x]
это создает разделенный список без разделителей, что выглядит более логичным для меня:
[['A'], ['B', 'C'], ['D']]
Если вы настаиваете на включении разделителей, это должно сработать:
spl = [[]]
for x, y in itertools.groupby(lst, lambda z: z == w):
if x: spl.append([])
spl[-1].extend(y)
Учитывая
import more_itertools as mit
iterable = ["A", "WORD", "B" , "C" , "WORD" , "D"]
pred = lambda x: x == "WORD"
Код
list(mit.split_before(iterable, pred))
# [['A'], ['WORD', 'B', 'C'], ['WORD', 'D']]
more_itertools
является сторонней библиотекой устанавливается через > pip install more_itertools
.
См. Также split_at
и split_after
.