在python中迭代两个整数列表?

2024-10-06 15:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个函数来生成Lagrange Interpolation,即enter image description here表达式。你知道吗

给出两个列表:XsYs,所以x我写了下面的算法:

#!/usr/bin/env python
#coding: utf8 
from sympy import *
from numpy import *
import json

L = {}
x = Symbol('x')
expresion = ''
def lagrange(Xs, Ys, x):

    for k in len(Xs):

        if k != 0 or k != len(Xs)-1: #si no es el primero o el último término de la sumatoria
            expresion = expresion + '+' + Ys[k] + '*'
        elif k==0:
            expresion = expresion + Ys[k] + '*'
        for i in len(Xs):
            if k==i:
                continue # Si i==k saltamos esta iteración para eliminar división sobre cero
            expresion = expresion + '(' + '(' + x + '-' + Xs[i] +' )' + '/' + '(' + Xs[k] + '-' + Xs[i] + ')' +')'
    print simpify(expresion)

当我跑的时候:

#!/usr/bin/env python
#coding: utf8 

from lagrange import *

lagrange([0,1,2,4],[-1,0,7,4,63],3)

我得到了:

[......]line 12, in lagrange
    for k in len(Xs):
TypeError: 'int' object is not iterable
[Finished in 0.5s with exit code 1]

那么我应该如何迭代XsYs元素,从而包含条件,如果i=k,它将continue遍历循环?你知道吗


Tags: infromimportenvforlenifbin
1条回答
网友
1楼 · 发布于 2024-10-06 15:22:11
for k in range(len(Xs))

会给你所有可能的指示。你知道吗

len(Xs)只是返回一个int,这是不可iterable的。您可能希望对i循环执行相同的操作。你知道吗

相关问题 更多 >