将多元素列表转换为数组

2024-05-06 21:19:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单

['0, 0, 0.16548735788092,\n',
 '1, 3.90625E-05, 0.368149412097409,\n',
 '2, 7.8125E-05, 0.184674297925085,\n',
 '3, 0.0001171875, 0.00359755125828087,\n',
 '4, 0.00015625, 0.0131910212803632,\n',
 '5, 0.0001953125, 0.24703185306862,\n',
 '6, 0.000234375, 0.474876766093075,\n',]

我从哪里得到的

data = f.readlines()

我想把这个列表转换成一个有3列的数组。谢谢


Tags: 列表data数组readlines
3条回答

我们每行迭代一次。然后,对于每一行,我们在,上拆分并将相应的值赋给临时值,然后向数组中添加一个包含三个条目的列

array=[]
for line in f.readlines():
    a_0,a_1,a_2,_=line.split(",")
    array.append([a_0,a_1,a_2])

这是一种方法。输入列表是lst。输出是3个元组的列表(每列一个元组)。我还将这些数字转换成float并删除了\n。你知道吗

cols = list(zip(*(map(float, i.replace('\n', '').split(',')[:-1]) for i in lst)))
[list(map(float, i.strip().split(',')[:-1])) for i in mylist]

输出:

[[0.0, 0.0, 0.16548735788092],
 [1.0, 3.90625e-05, 0.368149412097409],
 [2.0, 7.8125e-05, 0.184674297925085],
 [3.0, 0.0001171875, 0.00359755125828087],
 [4.0, 0.00015625, 0.0131910212803632],
 [5.0, 0.0001953125, 0.24703185306862],
 [6.0, 0.000234375, 0.474876766093075]]

相关问题 更多 >