python - 如何将字符串转换为列表?
问题描述
我有一个文件,它由多个列表组成,如下所示
[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()
仅适用于非常有限的数据类型的代码。有关这方面的更多信息,请参阅使用 python 的 eval() 与 ast.literal_eval()?
推荐阅读
- sql - 查询具有不同条件的同一列 - 组
- sql - 在 BigQuery 中对嵌套字段求和
- python - 编写一个输出成为新输入的可迭代函数
- python - 如何在 Python Pandas Matplotlib 的子图中从自己的函数中绘制图形?
- javascript - 使用 Firebase 托管时无法在 HTML 网站中显示图像 (403)
- c# - 使用反射查找接口
在装配类型中 - javascript - Node.js [系统:输入意外结束]错误(再次)
- javascript - Gatsby 网页的 VS Code 中出现意外的字符错误
- css - Bootstrap - 在活动 btn-check 上添加三角形指示器
- reactjs - 如何让托管在 WebView2 控件中的 reactjs Web 应用程序使用 Windows 登录验证到 Okta?