gpt4 book ai didi

python - 如何在 Python 中的两个长列表中减去特定切片的对应元素?

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:08 24 4
gpt4 key购买 nike

假设我有以下两个列表:

x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

y = [None,None,None,None,None,10,20,30,40,50,60,70,80,90,100]

我需要减去每个列表 (x[i] - y[i] ) 的相应元素,我想从 x 的第 6 个元素开始减去 6,以便 y 中的相应元素不为 null(没有任何)。以下代码是我尝试过但出现错误的代码:

result = []

for i in x[5:]:
result.append(x[i] - y[i])

索引错误:列表索引超出范围

最佳答案

你应该这样做:

for val1, val2 in zip(x[5:], y[5:]):
result.append(val1 - val2)

for val1, val2 in list(zip(x, y))[5:]:
result.append(val1 - val2)

您也可以跳过 None 值,如下所示:

for val1, val2 in zip(x, y):
if val2 is not None: # can also check if val1 is not None if needed
result.append(val1 - val2)

你得到 IndexError 的原因是你循环中的 i 被分配了 x 的值(不是 indeces!) code> list,并且您正在尝试使用这些值对列表进行索引。因此,例如在循环的最后一次 i = 15 中,当该元素的索引仅为 14 时。

关于python - 如何在 Python 中的两个长列表中减去特定切片的对应元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com