我在一个.txt文件中有两个列表,我需要python来读取该文件,并在变量名下创建两个单独的列表。目前,我可以读取数据并将其拆分为两个变量(:pointer和pointer:),但Python将它们解释为字符串。无论如何,我可以在不破坏格式的情况下将它们解释为列表(我尝试过.split()和list(),它们都破坏了格式。
我在文件中的内容:
["A","B","C","D","E","F"]
[0,1,2,3,4,5,6,7,8,9,10]我需要将它读入两个变量,这样它就是这样的:
List1 = ["A","B","C","D","E","F"]
List2 = [0,1,2,3,4,5,6,7,8,9,10]这是为了让我可以使用如下方法:
List1[3] = "D"如果你能帮我解决这个问题,我将不胜感激。因此,我只需要将.txt文件中的两个列表作为两个单独的列表读取到Python中。
发布于 2017-01-08 17:47:36
您可以通过在map中使用ast.literal_eval来实现这一点
import ast
with open('/path/to/my_file.txt') as f:
my_list = map(ast.literal_eval, f.readlines())
# ^ to convert *list like string* to `list` object现在您可以使用索引访问单个列表,如下所示:
>>> my_list[0]
['A', 'B', 'C', 'D', 'E', 'F']
>>> my_list[1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]如果必须将其存储到变量中(尽管我强烈建议根据索引访问值),您可以将返回的列表解包到变量中,如下所示:
list1, list2 = map(ast.literal_eval, f.readlines())
# Note: Number of variables used to unwrap the list should be
# equal to count of nested lists.https://stackoverflow.com/questions/41531334
复制相似问题