首页 > 解决方案 > 带有字符串值的列表到二维数组

问题描述

字符串值列表如下所示:

x = ["0: ['17' '19']", "1: ['32' '35']", "2: ['29']", "3: ['16']", "4: ['24' '18' '9']", "6: ['24' '26']", "9: ['11' '26' '34']", "10: ['33']"]

我想要一个二维数组,所以我可以这样做:

print(x[0][1][1])
19

首先我摆脱了冒号:

x = [i.split(': ') for i in x]
[['0', "['17' '19']"], ['1', "['32' '35']"], ['2', "['29']"], ['3', "['16']"], ['4', "['24' '18' '9']"], ['6', "['24' '26']"], ['9', "['11' '26' '34']"], ['10', "['33']"]]

但是我不知道下一步该怎么做...

标签: pythonarrayslist

解决方案


这是一种方法。

前任:

x = ["0: ['17' '19']", "1: ['32' '35']", "2: ['29']", "3: ['16']", "4: ['24' '18' '9']", "6: ['24' '26']", "9: ['11' '26' '34']", "10: ['33']"]
res = []
for i in x:
    m, n = i.split(": ")
    res.append([m, [int(j.strip("'")) for j in n.strip("[]").split()]])

print(res[0][1][1]) #-->19

或使用 numpy

import numpy as np

res = []
for i in x:
    m, n = i.split(": ")
    res.append([m, np.fromstring(n[1:-1].replace("'", ""),sep=' ').astype(int)])

print(res[0][1][1])

推荐阅读