python - Python 中两个嵌套字符串列表之间的减法

标签 python excel list

我正在尝试遵循 this 中使用的结构嵌套列表的问题,但我很困惑,不知道如何解决。假设要减去两个列表 a = ['5', '35.1',​​ 'FFD']b = ['8.5', '11.3', 'AMM'],下面的代码用于求得方程c = b - a:

diffs = []
for i, j in zip(a, b):
    try:
        diffs.append(str(float(j) - float(i)))
    except ValueError:
        diffs.append('-'.join([j, i]))
>>> print(diffs)
['3.5', '-23.8', 'AMM-FFD']

我的问题是,如何通过考虑以下结构得到 C = B - A:

A = [['X1','X2'],['52.3','119.4'],['45.1','111']]

B = [['Y1','Y2'],['66.9','65'],['99','115.5']]

C = [['Y1-X1','Y2-X2'],['14.6','-54.4'],['53.9','4.5']]

以及如何处理每个内部列表的第一个和第二个元素,例如:

Array 1 = ['Y1-X1', '14.6', '53.9']
Array 2 = ['Y2-X2', '-54.4', '4.5']

我感谢任何形式的帮助。

最佳答案

好吧,如果保证列表总是两层嵌套,你可以简单地再添加一个循环:

diffs_lists = []
for i, j in zip(a, b):
    diffs = []
    for k, l in zip(i, j):
        try:
            diffs.append(str(float(k) - float(l)))
        except ValueError:
            diffs.append('-'.join([k, l]))
    diffs_lists.append(diffs)

要按照您的要求将结果一分为二,只需使用 zip:

zip(*diffs_lists)

关于python - Python 中两个嵌套字符串列表之间的减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40611413/

相关文章:

python - 使用Python将多个制表符分隔的文本文件插入MySQL?

python - Ubuntu从14.10更新到16.04后,为什么python找不到libavcodec.so.54?

python - 在R,G,B平面中有效替换像素值python-openCV

list - Haskell 中的列表元素相乘

python - 在列表中查找连续的整数

python - 饼图和 geopandas map

arrays - VBA锯齿状数组重复

vb.net - 将数字转换为字母数字 Excel 单元格引用

excel - 如何在工作表名称更改时使宏起作用

python - 如何在 python 中创建嵌套列表?