如何添加行元素并将其添加到列表中

问题描述 投票:-2回答:3

我有以下代码:

nilai = [[70,50,80],
     [100,80,90],
     [100,40,70],
     [80,50,60]]
rata_rata = []

for i in range(0,len(nilai)):
    for j in range(0,len(nilai)):
        row = 0.2 * nilai[i][j] + 0.3 * nilai[i][j] + 0.5 * nilai[i][j]
        rata_rata.append(row)

我想知道如何访问列nilai[i]中的元素?

python list row add
3个回答
0
投票

您使生活复杂化。请改用pandas。这很简单:

import pandas as pd     # pip install pandas

nilai = [[70,50,80],
     [100,80,90],
     [100,40,70],
     [80,50,60]]

df = pd.DataFrame(nilai)    # creating a table flom nilai

df[3] = 0.2 * df[0] + 0.3 * df[1] + 0.5 * df[2]   # operation with whole columns

测试:

print(df)
     0   1   2     3
0   70  50  80  69.0
1  100  80  90  89.0
2  100  40  70  67.0
3   80  50  60  61.0

0
投票

您的第二个for loop不正确。

已修复。

nilai = [[70,50,80],
     [100,80,90],
     [100,40,70],
     [80,50,60]]
rata_rata = []

for i in range(0,len(nilai)):
    # use nilai[0]
    for j in range(0,len(nilai[0])):
        row = 0.2 * nilai[i][j] + 0.3 * nilai[i][j] + 0.5 * nilai[i][j]
        rata_rata.append(row)

而且,由于这是默认行为,因此您无需显式告诉range从0开始。

输出:

[70.0, 50.0, 80.0, 100.0, 80.0, 90.0, 100.0, 40.0, 70.0, 80.0, 50.0, 60.0]

0
投票

我想您想做的事情可以通过list comprehension轻松完成

nilai = [[70,50,80],
     [100,80,90],
     [100,40,70],
     [80,50,60]]
rata_rata = [0.2 * i + 0.3 * i + 0.5 * i for lst in nilai for i in lst]
print(rata_rata)

运行时输出:

[70.0, 50.0, 80.0, 100.0, 80.0, 90.0, 100.0, 40.0, 70.0, 80.0, 50.0, 60.0]
© www.soinside.com 2019 - 2024. All rights reserved.