如何使这3行代码更干燥

时间:2017-03-03 23:25:51

标签: python python-3.x dry

此代码:

<?php
  echo $_POST['code_editor'];
?>

以下示例中重复3次。我想在一行中制作它(至少减少它)。有可能吗?那怎么能这样做呢?

if len(group['elements']) > 0:
    groups.append(group)
    group = {'bla': '', 'elements': []}

修改这3行,

注意:除了示例代码的结构之外,不能做任何改变

抱歉错误。

1 个答案:

答案 0 :(得分:1)

将该代码放入函数中,并随时调用它。但严重的是,4个空格缩进。

collection_of_items = [
  ['strong', 'a', ['a'], '', 'strong', ['a'], ['a'], 'a', 'a', [], ''], 
  ['strong', 'a', ['a'], '', 'strong', 'a']
]

groups = []

def my_func(g):
  if len(g['elements']) > 0:
    groups.append(g)
    g = {'bla': '', 'elements': []}
  return g

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 == '':
        group = my_func(group)
    else:
      if 'a' in item:
        group['elements'].append(item[0])
      else:
        group = my_func(group)

  group = my_func(group)

print(groups)