首页 > 解决方案 > 划分每个子​​列表中的某些元素

问题描述

b = [[2021, 55, -0.65, 7.61, 10.65, 41.37, 3.39, 12.25, -10.14, 7.61, 8.84],
     [2022, 56, 3.0, -0.13, 8.84, 27.25, -0.48, 2.54, 12.43, 7.56, 3.37]]

我想将 b 中每个子列表的元素 [2:10] 除以 100。预期结果:

a = [2021, 55, -0.0065, 0.0761, 0.1065, 0.4137, 0.0339, 0.1225, -0.1014, 0.0761, 0.0884], etc

我试过了:

a = [item[2:10] /100 for item in b] Also tried: a = [item[2:10] / 100 for item in x] for x in b]

第一个给出“不支持的 / 操作数类型:list 和 int”。第二个给出“int object not subscriptable”

标签: python-3.x

解决方案


你的列表理解中的一个小错误,你在错误的地方切片。你需要做的是:

a = [x[:2] + [item / 100 for item in x[2:]] for x in b]
print(a)

输出:

[[2021, 55, -0.006500000000000001, 0.0761, 0.1065, 0.41369999999999996, 0.0339, 0.1225, -0.1014, 0.0761, 0.08839999999999999], [2022, 56, 0.03, -0.0013, 0.08839999999999999, 0.2725, -0.0048, 0.0254, 0.1243, 0.0756, 0.0337]]

推荐阅读