将二维列表转换为一维列表

a = [[0, 0.6, 0.37500000000000006, 0.7500000000000001, 0.19999999999999996, -0.24999999999999994, 0.0, -0.24999999999999994, 0.0, -1.25, -0.3333333333333335, 0.6, -1.25, 0.0, 0.33333333333333326, 0.5, -0.6666666666666667], [0, 0.12499999999999997, -2.0000000000000004, 0.16666666666666663, -0.24999999999999994, 0.5, -3.0000000000000004, 0.19999999999999996, 0.0, 0.19999999999999996, -0.16666666666666682, 0.6, -3.4999999999999996, -0.5000000000000001, -0.24999999999999994, 0.0, -0.24999999999999994], [0, -1.8503717077085943e-16, 0.7500000000000001, -0.6666666666666667, 0.7, -0.12499999999999997, 0.29999999999999993, -4.0, -1.0, -3.0000000000000004, 0.625, -0.5000000000000001, 0.24999999999999994, -2.5, -0.16666666666666682, 0.0, 0.5, -1.4999999999999998], [0, -0.5000000000000001, 0.09999999999999998, -1.0, -0.5000000000000001, -0.3333333333333335, 0.5, -0.6666666666666667, 0.7500000000000001, 0.33333333333333326, 0.37500000000000006, -0.16666666666666682, 0.16666666666666663, 0.5, 0.19999999999999996, -0.5000000000000001, -1.4999999999999998, -1.0], [0, -0.5000000000000001, 0.12499999999999997, -0.24999999999999994, -0.3333333333333335, -0.5000000000000001, -0.5000000000000001, 0.6666666666666666, -0.24999999999999994, 0.0, -1.25, -2.5, 0.0, 0.19999999999999996, 0.6666666666666666], [0, 0.19999999999999996, 0.0, -3.4999999999999996, -0.3333333333333335, 0.7, 0.5, 0.16666666666666663, 0.4999999999999999, -0.5000000000000001, -0.16666666666666682, -0.16666666666666682, 0.09999999999999998, -1.4999999999999998, -3.0000000000000004, 0.29999999999999993, 0.0, -1.4999999999999998, 0.33333333333333326], [0, -1.4999999999999998, 0.0]]
a_flat = [item for sublist in a for item in sublist]
print(a_flat)

输出:

[0, 0.6, 0.375, 0.75, 0.2, -0.25, 0.0, -0.25, 0.0, -1.25, -0.3333333333333333, 0.6, -1.25, 0.0, 0.3333333333333333, 0.5, -0.6666666666666666, 0, 0.125, -2.0, 0.16666666666666666, -0.25, 0.5, -3.0, 0.2, 0.0, 0.2, -0.16666666666666666, 0.6, -3.5, -0.5, -0.25, 0.0, -0.25, 0, -1.8503717077085943e-16, 0.75, -0.6666666666666666, 0.7, -0.125, 0.3, -4.0, -1.0, -3.0, 0.625, -0.5, 0.25, -2.5, -0.16666666666666666, 0.0, 0.5, -1.5, 0, -0.5, 0.1, -1.0, -0.5, -0.3333333333333333, 0.5, -0.6666666666666666, 0.75, 0.3333333333333333, 0.375, -0.16666666666666666, 0.16666666666666666, 0.5, 0.2, -0.5, -1.5, -1.0, 0, -0.5, 0.125, -0.25, -0.3333333333333333, -0.5, 0.6666666666666666, -0.25, 0.0, -1.25, -2.5, 0.0, 0.2, 0.6666666666666666, 0, 0.2, 0.0, -3.5, -0.3333333333333333, 0.7, 0.5, 0.5, -0.5, -0.16666666666666666, -0.16666666666666666, 0.1, -1.5, -3.0, 0.3, 0.0, -1.5, 0.3333333333333333, 0, -1.5, 0.0]

代码解析:

这段代码使用了列表推导,将二维列表 a 中的所有元素提取出来,并组成一个新的列表 a_flat

列表推导的语法:

[expression for item in iterable if condition]
  • expression: 要执行的表达式,用于处理每个元素。
  • item: 迭代器中的每个元素。
  • iterable: 可迭代对象,例如列表、元组、字符串等。
  • condition: 可选的条件表达式,只有满足条件的元素才会被处理。

代码解释:

代码中,[item for sublist in a for item in sublist] 的意思是:

  1. 遍历 a 中的每个子列表 sublist
  2. 对于每个子列表 sublist,再遍历 sublist 中的每个元素 item
  3. 将所有元素 item 加入新的列表 a_flat 中。

总结:

使用列表推导可以简洁地将二维列表转换为一维列表。

注意:

  • 该方法适用于所有可迭代对象,不仅限于列表。
  • 列表推导是一种高效的列表生成方法,可以提高代码的可读性和效率。
Python: 将二维数组转换为一维数组

原文地址: https://www.cveoy.top/t/topic/nryw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录