迭代两个列表以在Python中创建新列表

use*_*976 1 python list

我试图迭代两个列表来填充结果的新列表,但我不确定它出错的地方.注意:我是初学者使用Python.Mahalo提前!

sumList = [27400.0, 32900.0, 42200.0, 40600.0];
volList = [27000.0, 40000.0, 31000.0, 40000.0];
rendeList = [];

x = 0;
for sumValue in range (0, len(sumList)-1):
    rendeList = rendeList.append((sumList[x]/volList[x])*100)
    x += 1;
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个属性错误:'NoneType'对象没有属性'append'.运行for循环后,我得到:

print rendeList
None
Run Code Online (Sandbox Code Playgroud)

我的预期结果将是:

print rendeList
[101.48, 82.25, 136.13, 101.49] 
Run Code Online (Sandbox Code Playgroud)

tmr*_*232 7

list.append(x)修改列表并返回None.将您的代码更改为:

for sumValue in range (0, len(sumList)):
    rendeList.append((sumList[x]/volList[x])*100)
    x += 1
Run Code Online (Sandbox Code Playgroud)

或简化为:

for sumValue, volValue in zip(sumList, volList):
    rendeList.append((sumValue / volValue) * 100)
Run Code Online (Sandbox Code Playgroud)


sha*_*aan 5

这是您使用列表理解的解决方案:

 result = [a[0]/a[1]*100 for a in zip(sumList, volList)]
Run Code Online (Sandbox Code Playgroud)