【问题标题】:String inside a list of lists列表列表中的字符串
【发布时间】:2021-11-28 04:01:57
【问题描述】:

我的数据有问题,我必须从列表中读取包含数据的文本文件。

with open('ej11.txt') as f:
    lines = f.readlines()
    

为了正确读取文件,我必须消除前两个元素['后两个']。我尝试过使用“pop”方法,但这样做会消除所有数据。

有什么实用的方法可以解决这个问题吗?谢谢。

我的数据是这样的:

["[[[1, 21, 13, 14, 15, 0.0, 3.0, 'W'], [2, 24, 16, 17, 18, 4.0, 3.0, 'W']], 8, 2]"]

我的数据应该是这样的:

[[[1, 21, 13, 14, 15, 0.0, 3.0, 'W'], [2, 24, 16, 17, 18, 4.0, 3.0, 'W']], 8, 2]

【问题讨论】:

  • 首先,.readlines() 在只有一行的文件上是愚蠢的 - .read() 会直接给你字符串,而不会将它无用地包含在列表中。 ast.literal_eval() 将是将该字符串转换为实际 Python 对象的最安全方法。

标签: python python-3.x list


【解决方案1】:

尝试使用ast.literal_eval

import ast

d = ["[[[1, 21, 13, 14, 15, 0.0, 3.0, 'W'], [2, 24, 16, 17, 18, 4.0, 3.0, 'W']], 8, 2]"]
data = ast.literal_eval(d[0])

输出:

[[[1, 21, 13, 14, 15, 0.0, 3.0, 'W'], [2, 24, 16, 17, 18, 4.0, 3.0, 'W']],
 8,
 2]

【讨论】:

  • 非常感谢您的贡献,它对我很有帮助。 @斯科特波士顿
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2021-03-17
  • 2020-03-12
  • 2013-01-15
  • 1970-01-01
相关资源
最近更新 更多