【发布时间】:2021-05-02 13:55:54
【问题描述】:
我在 JavaScript 学习 3 年后才开始学习 Python,我很难理解为什么以下内容不会改变现有数组?
我基本上只是想将每个数组修剪为前 5 个元素。
data = [[1619740800000, '54474.27000000', '108499.98000000', '30000.00000000', '56989.21000000',
'5.74916200', 1619827199999, '332834.07665858', 23971, '4.30590700', '251576.63190168', '0'],
[1619827200000, '56989.21000000',
'105053.04000000', '12000.00000000', '57794.45000000', '10.12076500', 1619913599999,
'612746.95919066', 45086, '9.12267500', '557156.21495534', '0'], [1619913600000, '57797.36000000',
'98900.00000000', '30000.00000000', '56539.47000000', '6.05304600', 1619999999999, '334919.15726802',
28754, '5.03377800', '284764.41259450', '0']]
我的 for 循环:
for x in data:
x = x[:5]
# print(data) outputs the same as above
【问题讨论】:
-
data = [x[:5] for x in data]。问题是:您不能以这种方式分配给列表的元素...(x只会引用您的一些数据,但x与您的列表不再有任何关系)。跨度> -
忘了添加:在这种情况下,您还可以使用slice-assignment 来就地修改嵌套列表:
x[:] = x[:5]。