Проблема заключается в том, что при добавлении параметра в функцию DOMDocument :: saveHTML () вы теряете кодировку. В некоторых случаях вам нужно избегать использования параметра и использовать функцию старой строки, чтобы найти то, что вы ищете.
Я думаю, что предыдущий ответ работает на вас, но поскольку это обходное решение Я работаю для меня, я добавляю этот ответ, чтобы помочь ppl, который может быть в моем случае.
from itertools import combinations
from pprint import pprint
pprint([''.join(map('age'.__add__, a)) for i in range(2, len(ages) + 1) for a in combinations(ages, i)])
Эти выходы:
['age45-64age65+',
'age45-64age35-44',
'age45-64age18-24',
'age45-64age13-17',
'age45-64age25-34',
'age65+age35-44',
'age65+age18-24',
'age65+age13-17',
'age65+age25-34',
'age35-44age18-24',
'age35-44age13-17',
'age35-44age25-34',
'age18-24age13-17',
'age18-24age25-34',
'age13-17age25-34',
'age45-64age65+age35-44',
'age45-64age65+age18-24',
'age45-64age65+age13-17',
'age45-64age65+age25-34',
'age45-64age35-44age18-24',
'age45-64age35-44age13-17',
'age45-64age35-44age25-34',
'age45-64age18-24age13-17',
'age45-64age18-24age25-34',
'age45-64age13-17age25-34',
'age65+age35-44age18-24',
'age65+age35-44age13-17',
'age65+age35-44age25-34',
'age65+age18-24age13-17',
'age65+age18-24age25-34',
'age65+age13-17age25-34',
'age35-44age18-24age13-17',
'age35-44age18-24age25-34',
'age35-44age13-17age25-34',
'age18-24age13-17age25-34',
'age45-64age65+age35-44age18-24',
'age45-64age65+age35-44age13-17',
'age45-64age65+age35-44age25-34',
'age45-64age65+age18-24age13-17',
'age45-64age65+age18-24age25-34',
'age45-64age65+age13-17age25-34',
'age45-64age35-44age18-24age13-17',
'age45-64age35-44age18-24age25-34',
'age45-64age35-44age13-17age25-34',
'age45-64age18-24age13-17age25-34',
'age65+age35-44age18-24age13-17',
'age65+age35-44age18-24age25-34',
'age65+age35-44age13-17age25-34',
'age65+age18-24age13-17age25-34',
'age35-44age18-24age13-17age25-34',
'age45-64age65+age35-44age18-24age13-17',
'age45-64age65+age35-44age18-24age25-34',
'age45-64age65+age35-44age13-17age25-34',
'age45-64age65+age18-24age13-17age25-34',
'age45-64age35-44age18-24age13-17age25-34',
'age65+age35-44age18-24age13-17age25-34',
'age45-64age65+age35-44age18-24age13-17age25-34']
Вы можете комбинировать itertools.combinations
и itertools.product
, чтобы сделать это
from itertools import combinations, chain
l = ages.keys()
l2 = list(chain(*[['age'.join(('',)+c) for c in combinations(l,i)] for i in range(2, len(l))]))
from pprint import pprint
pprint(l2)
Выход
['age45-64age65+',
'age45-64age35-44',
'age45-64age18-24',
'age45-64age13-17',
'age45-64age25-34',
'age65+age35-44',
'age65+age18-24',
'age65+age13-17',
'age65+age25-34',
'age35-44age18-24',
'age35-44age13-17',
'age35-44age25-34',
'age18-24age13-17',
'age18-24age25-34',
'age13-17age25-34',
'age45-64age65+age35-44',
'age45-64age65+age18-24',
'age45-64age65+age13-17',
'age45-64age65+age25-34',
'age45-64age35-44age18-24',
'age45-64age35-44age13-17',
'age45-64age35-44age25-34',
'age45-64age18-24age13-17',
'age45-64age18-24age25-34',
'age45-64age13-17age25-34',
'age65+age35-44age18-24',
'age65+age35-44age13-17',
'age65+age35-44age25-34',
'age65+age18-24age13-17',
'age65+age18-24age25-34',
'age65+age13-17age25-34',
'age35-44age18-24age13-17',
'age35-44age18-24age25-34',
'age35-44age13-17age25-34',
'age18-24age13-17age25-34',
'age45-64age65+age35-44age18-24',
'age45-64age65+age35-44age13-17',
'age45-64age65+age35-44age25-34',
'age45-64age65+age18-24age13-17',
'age45-64age65+age18-24age25-34',
'age45-64age65+age13-17age25-34',
'age45-64age35-44age18-24age13-17',
'age45-64age35-44age18-24age25-34',
'age45-64age35-44age13-17age25-34',
'age45-64age18-24age13-17age25-34',
'age65+age35-44age18-24age13-17',
'age65+age35-44age18-24age25-34',
'age65+age35-44age13-17age25-34',
'age65+age18-24age13-17age25-34',
'age35-44age18-24age13-17age25-34',
'age45-64age65+age35-44age18-24age13-17',
'age45-64age65+age35-44age18-24age25-34',
'age45-64age65+age35-44age13-17age25-34',
'age45-64age65+age18-24age13-17age25-34',
'age45-64age35-44age18-24age13-17age25-34',
'age65+age35-44age18-24age13-17age25-34']