Skip to main content
 首页 » 编程设计

Python列表转换成整数

2025年05月04日9think

在测试代码时出现了一些错误——经过数学运算后,列表“缩小”到它自己的最后一项

在 Python 3.3 解释器中它工作正常...

a = [a + b for a, b in zip(a, b)] 

我正在使用这段代码添加一些列表项

a = [1, 2, 3] 
b = [2, 3, 2] 

这工作正常并返回

>>> a 
[3, 5, 5] 
>>> b 
[2, 3, 2] 

然后我写了一个类来处理更多列表:

class Vector: 
 
    def __init__(self, name = '', vector = []): 
        self.__name = name 
        self.__vector = vector 
 
 
    def add_row_to_scalar_multiple(self, vector): 
        self.__vector = [self.__vector + vector.__vector for self.__vector, vector.__vector in zip(self.__vector, vector.__vector)] 
 
 
    def __str__(self): 
        vec = ('{0} = {1}'.format(self.__name, self.__vector)) 
        formatted_vec = vec.replace(',', '') 
        return formatted_vec 

当使用与上面相同的列表运行代码时,一个列表被缩减为一个整数

vec_a = Vector('a', [1, 2, 3]) 
vec_b = Vector('b', [2, 3, 2])  
 
a = [1, 2, 3] 
b = [2, 3, 2] 
 
vec_b.add_row_to_scalar_multiple(vec_a) 
 
 
a = 3 
b = [3, 5, 5] 

我只是不知道我做错了什么,所以有人可以帮忙吗??

请您参考如下方法:

self.__vector = [self.__vector + vector.__vector for self.__vector, vector.__vector in zip(self.__vector, vector.__vector)] 

看到了吗?您在循环中为 self.__vector, vector.__vector 赋值 for self.__vector, vector.__vector in zip(self.__vector, vector.__vector)。