逻辑在某些方面有缺陷。这是我第一个这样问的问题。总之,这里:
因此,一个列表被传递到函数中,该列表表示一个未简化的表达式,如2x-5y-3x+7y+3z+6z = [(2,'x'),(-5,'y'),(-3,x),(7,'y'),(3,'z'),(6,'z')]
,
我必须组合like术语并返回一个带有简化表达式的列表,在本例中是[(-1,'x),(4,'y'),(9,'z')]
。你知道吗
回溯错误表明我的迭代器(我正在使用它作为索引)超出了界限,不确定如何执行,因为我只从0
到length of the list-1
执行了一次。你知道吗
def groupLikeTerms(exp):
newlist=[]
sumVar=0
for x in range(0,len(exp)-1,1):
Letter=exp[x][1]
if Letter in newlist:
continue
else:
for x2 in range(0,len(exp)-1,1):
if exp[x2][1]==Letter:
sumVar+=exp[x2][0]
newlist.append([(sumVar,Letter)])
exp=newlist[:]
return exp
只是使用
collections.defaultdict(int)
的另一种方法您可以使用
itertools.groupby
:输出:
编辑:使用最近编辑的数据:
输出:
相关问题 更多 >
编程相关推荐