このコード:どのように私は、コードのこれらの3行は、よりDRYにすることができ
if len(group['elements']) > 0:
groups.append(group)
group = {'bla': '', 'elements': []}
は、以下の例では3回繰り返します。私は1つのラインでそれを作っていきたいです。それは可能ですか?どうすればいいですか?
collection_of_items = [
['strong', 'a', ['a'], '', 'strong', ['a'], ['a'], 'a', 'a', [], ''],
['strong', 'a', ['a'], '', 'strong', 'a']
]
groups = []
for items in collection_of_items:
group = {'bla': '', 'elements': []}
for item in items:
if hasattr(item, 'lower'):
if item == 'strong':
group['bla'] = item
elif item =='a':
group['elements'].append(item)
elif item == '':
# Make it DRY <---------------------------------------
if len(group['elements']) > 0:
groups.append(group)
group = {'bla': '', 'elements': []}
else:
if 'a' in item:
group['elements'].append(item[0])
else:
# Make it DRY <---------------------------------------
if len(group['elements']) > 0:
groups.append(group)
group = {'bla': '', 'elements': []}
# Make it DRY <---------------------------------------
if len(group['elements']) > 0:
groups.append(group)
group = {'bla': '', 'elements': []}
print(groups)
これら3行を変更
、注:サンプルコードの構造以外のものを行いますがミスを
申し訳
を変更することはできません。
first-things-first:*インデント用に4つのスペースを使用する*。しかし、ええ、関数でそれをラップすることはできませんか? –
すみません。実際に私はオンラインideを使用しました。そのため2スペースです。今更新されました –