我有一个如下所示的列表:
['['0.' '1.' '0.']',
'['1.' '0.' '0.']', ....,
'['0.' '1.' '1.']']
我希望在Python中看起来像这样:
[[0, 1, 0],
[1, 0, 0],
[0, 1, 1]]
我无法使用strip(),split()和ast.literal_eval()来解决这个问题。谢谢!
答案 0 :(得分:1)
你可以试试这个:
import re
s = ["['0.' '1.' '0.']", "['1.' '0.' '0.']", "['0.' '1.' '1.']"]
new_data = [map(int, list(eval(re.sub("\.", '', i))[0])) for i in s]
输出:
[[0, 1, 0], [1, 0, 0], [0, 1, 1]]
没有评估的解决方案:
s = ["['0.' '1.' '0.']", "['1.' '0.' '0.']", "['0.' '1.' '1.']"]
new_data = [map(int, re.findall("\d+", i[1:-1])) for i in s]
输出:
[[0, 1, 0], [1, 0, 0], [0, 1, 1]]