我有以下代码:
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]
中的元素?
您使生活复杂化。请改用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
您的第二个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]
我想您想做的事情可以通过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]