作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在以这种格式从文件中读取数据行:
['A', 'B', 'C', 'D', 'E']
['1', '2', '3', '4', '5']
...等
但是,当我执行 type(dataInput[0])
时,它告诉我它来自字符串类型。虽然它看起来像一个带有括号和所有内容的列表。我怎样才能使 dataInput[0]
直接变成列表而不是字符串?
这是一些代码:
fobj = open(selectedCase, 'r').read()
dataInput = re.split('\n', fobj)
我看过以下主题: How to convert comma-delimited string to list in Python?但是,该示例在字符串中没有括号。
最佳答案
使用ast.literal_eval()
将这些字符串转换为 Python 列表:
import ast
dataInput = [ast.literal_eval(line) for line in fobj.splitlines()]
演示:
>>> import ast
>>> result = ast.literal_eval("['A', 'B', 'C', 'D', 'E']")
>>> type(result)
<class 'list'>
>>> result
['A', 'B', 'C', 'D', 'E']
您可能希望将文件对象用作上下文管理器,让 Python 再次显式关闭它:
with open(selectedCase) as infh:
dataInput = [ast.literal_eval(line) for line in infh]
这也使用文件对象作为迭代器,循环将一次从文件中获取一行。
关于python - 如何将相似列表转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543573/
我是一名优秀的程序员,十分优秀!