我想将'[[0,0,0],[0,[0],1],2,[1,1,0]]'
转换为嵌套列表。我知道eval
,但明白它是任意的。我宁愿不使用图书馆;但有一个Python代码 (因为我最终会分发代码)。将嵌套列表字符串转换为列表
0
A
回答
2
>>> import json
>>> json.loads('[[0,0,0],[0,[0],1],2,[1,1,0]]')
[[0, 0, 0], [0, [0], 1], 2, [1, 1, 0]]
5
0
好了,你似乎没有访问标准Python库,将使这很容易。所以你几乎坚持写你自己的。我会一起快速递归下降解析器。
这里是一个真正的快速破解工作
class Input:
"""
This class keep track of the current position in the text
and provides utility functions
"""
def __init__(self, input_text):
self.input_text = input_text
self.peek = input_text[0]
self.position = 1
def match(self, character):
assert self.peek == character
self.peek = self.input_text[self.position]
self.position += 1
def extract_int(self):
text = ''
while self.peek.isdigit():
text += self.peek
self.match(self.peek)
return int(text)
def parse_list(input):
"""
Parses input, extracting a list starting at the current point
"""
result = []
input.match('[')
while input.peek != ']':
result.append(parse_piece(input))
if input.peek != ',':
break
input.match(',')
input.match(']')
return result
def parse_piece(input):
"""
Extract a list element, either another list or an int
"""
if input.peek.isdigit():
return input.extract_int()
elif input.peek == '[':
return parse_list(input)
else:
assert False
未经测试。可能不会编译。但希望它给你一个想法去看看。
相关问题
- 1. 将嵌套字符串列表转换为嵌套字符串列表
- 2. 将单个字符串转换为嵌套列表阵列
- 3. netlogo将字符串转换为嵌套列表中的数字
- 4. 如何将数字的嵌套列表转换为字符串列表?
- 5. 将列表转换为嵌套字典
- 6. 嵌套列表将字符串转换为浮动
- 7. 将嵌套列表转换为查询字符串格式?
- 8. 将字符串列表转换为字符串列表
- 9. 将字符串转换为字列表?
- 10. 将任意嵌套的文字列表转换为字符串表示
- 11. Python将元组列表转换为嵌套字典列表
- 12. 一个字符串转换为一个嵌套TCL列表
- 13. 将字符串转换为列表
- 14. 将列表转换为字符串
- 15. 将Enumerable.Range转换为字符串列表
- 16. 将字符串转换为列表
- 17. Java - 将字符串转换为列表
- 18. 将AppleScript列表转换为字符串
- 19. 将数组转换为嵌套列表
- 20. 将嵌套列表转换为矩阵
- 21. 嵌套列表 - 字符串为浮动
- 22. 将字符串列表转换为日期列表Python 3.6
- 23. 如何将字符串列表转换为适当的列表?
- 24. 将列表(的对象)转换为列表(的字符串)
- 25. 将字符串列表转换为int列表
- 26. 将列表的Python列表转换为字符串
- 27. 如何将字符串列表转换为整数列表?
- 28. 将字符串查找列表转换为Python中的列表
- 29. 将列表列表转换为垂直字符串
- 30. 将字符串的混合列表转换为整数列表
我认为你的意思是你不想使用第三方库,对吧? – 2012-02-01 17:10:07
这些数据来自哪里?该列表中可以包含哪些数据? – 2012-02-01 17:24:13
@tim,是的,我宁愿不使用json或ast,因为这些库在我使用的集群上不可用(并且它很容易让管理员安装这些库);但只是Python代码。 winston,数据可能是int,float或string。但我会知道数据类型 – planargraph 2012-02-01 17:50:18