我有一段奇怪的代码.这很臭,但如果更清楚,我想不出方法.
我要做的是从左侧列表的尾部或右侧列表的头部删除最大的项目.我最终得到了这段代码.
if not left:
right.pop(0)
elif not right:
left.pop(-1):
elif len(left[-1]) < len(right[0]):
right.pop(0)
else:
left.pop(-1)
Run Code Online (Sandbox Code Playgroud)
条件的主体是彼此完全相同的,yuck.
是否有一种优雅的方法来重构此代码以最大限度地减少重复?
改变您的条件,并消除多余的条款.
if (not left) or (right and (len(left[-1]) < len(right[0]))):
right.pop(0)
else:
left.pop(-1)
Run Code Online (Sandbox Code Playgroud)