python - 从一行打印 2 个列表

标签 python

我目前拥有的:

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 是一个字符串列表。

您还应该测试 posneg 是否为空,以便在适当的时候用 0 替换它们。看起来系数是整数。

关于python - 从一行打印 2 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943801/

相关文章:

python - pandas:根据过去 4 周获取一周中一天的平均销售额

python - 如何使用数据库在 Django 中的应用程序之间交换数据?

python - Flask 和减少 mysql 查询的最佳方法,也许是 celery?

python - 如何使用 application/x-www-form-urlencoded 在 python 中发出原始数据发布请求

python - "OSError: [Errno 22] Invalid argument"在 Windows 上使用 print() 和管道输出

python - TensorFlow 中相当于 PyTorch 中的 expand() 的函数是什么?

Python:在多个进程之间共享一个大型对象字典

python - 隐藏/保护 Python 代码

python - Pandas GroupBy.agg() 抛出 TypeError : aggregate() missing 1 required positional argument: 'arg'

python - 如何仅更改第一个 "Column name"pandas 的字体