如何在Python中将列表中的每个元素除以一个数字

3 投票
5 回答
16211 浏览
提问于 2025-04-17 13:05

我有一个叫做 'q' 的列表,里面又包含了很多小列表。我想把每个小列表里的数字都除以这个小列表的总和(总和是10)。

q = [[0,0,0,10],[1,2,6,1]]
B=[]
for x in q:
    y = [z/sum(x[:len(x)]) for z in x]
    B.append(y)   
print B

但是这样做出来的结果跟我想要的完全不一样。

有没有人知道我哪里出错了?

5 个回答

2
B = []
for x in q:
   theSum = sum(x)
   y = [float(xi) / theSum for xi in x]
   B.append(y)
print B

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

2

你正在进行整数除法,因为这两个参与运算的数都是整数。

y = [float(z)/sum(x) for z in x]
3
$ python
>>> q = [[0,0,0,10],[1,2,6,1]]
>>> B = [[float(j)/sum(i) for j in i] for i in q]
>>> B
[[0.0, 0.0, 0.0, 1.0], [0.1, 0.2, 0.6, 0.1]]

注意:python3 中,使用 float() 这个函数并不是必须的。

撰写回答