python - 如何将字符串转换为列表?

标签 python list python-2.7 file

我有一个文件,它由多个列表组成,如下所示

[234,343,234]
[23,45,34,5]
[354,45]
[]
[334,23]

我正在尝试逐行读取并附加到 python 中的单个列表。

怎么做?

到目前为止我已经尝试过>

with open("pos.txt","r") as filePos:
    pos_lists=filePos.read()
new_list=[]
for i in pos_lists.split("\n"):
    print(type(i)) #it is str i want it as list
    new_list.extend(i)

print(new_list)

提前致谢

最佳答案

您可以尝试这些:

>>> from ast import literal_eval
>>> with open(YOURTEXTFILE) as f:
...    final_list = [literal_eval(elem) for elem in f.readlines()]
>>> final_list
[[234, 343, 234], [23, 45, 34, 5], [354, 45], [], [334, 23]]

或者,

>>> from ast import literal_eval
>>> with open(YOURTEXTFILE) as f:
...    final_list = sum(map(literal_eval, s.readlines()), [])
>>> final_list
[234, 343, 234, 23, 45, 34, 5, 354, 45, 334, 23]

随心所欲。

使用 python 内置 eval() 可以完成同样的事情但是,不建议在不受信任的代码上使用 eval(),而是使用 ast.literal_eval()它仅适用于非常有限的数据类型。 有关这方面的更多信息,请参阅Using python's eval() vs. ast.literal_eval()?

关于python - 如何将字符串转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60372585/

相关文章:

python - Django 模型继承与 OneToOne 字段

Python正则表达式从点分隔的字母中删除点

css, li 全宽 ul

外部范围内的列表过滤器 - KOTLIN

Python Tkinter : multiple images and text on a BIG button?

python - 在之前、之间和之后连接字符串

Python "Error ' dict' 对象没有属性 'load' "

java - 搜索 map 的最佳方式

Python:元组中的列表

python - 通过 Python 脚本不受信任的 SVN SSL 证书