我目前拥有的:
def balance_equation(species,coeff):
data=zip(coeff,species)
positive=[]
negative=[]
for (mul,el) in data:
if int(mul)<0:
negative.append((el,mul))
if int(mul)>0:
positive.append((el,mul))
我知道这不会打印任何东西。我所拥有的是一个包含两个列表的函数 species=['H2O','O2','CO2']
和 coeff=['1','3','- 4']
。我需要它像这样打印:
1H20+3O2=4CO2
我首先将负系数和物种放在一个列表中,将正系数放在另一个列表中。我似乎可以让这两个打印正确。
最佳答案
试试这个:
species = ["H2O", "CO2", "O2"]
coeff = ['1', '-4', '3']
pos = [c + s for c, s in zip(coeff, species) if int(c) > 0]
neg = [c[1:] + s for c, s in zip(coeff, species) if int(c) < 0]
print ("+".join(pos))+"="+("+".join(neg))
编辑:我去掉了空格。
第二次编辑:coeff
是一个字符串列表。
您还应该测试 pos
或 neg
是否为空,以便在适当的时候用 0
替换它们。看起来系数是整数。
关于python - 从一行打印 2 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943801/