获取外部列表中带有“”的嵌套列表

时间:2019-11-22 19:44:30

标签: python list

打开并阅读输入文件后,我试图将输入拆分为不同的字符。尽管我似乎得到了一个我不想要的嵌套列表,但效果很好。我的列表看起来不像[[list]],而是像["[list]"]。我在这里做错了什么?

输入看起来像这样:

name1___1 2 3 4 5
5=20=22=10=2=0=0=1=0=1something,something
name2___1 2 3 4
2=30=15=8=4=3=2=0=0=0;

输出看起来像这样:

["['name1", '', '', "1 2 3 4 5', 'name2", '', '', "1 2 3 4']"]

这是我的代码:

file = open("file.txt")
input_of_this_file = file.read()
a = input_of_this_file.split("\n")
b = a[0::2] # so i get only the even lines
c = str(b) # to make it a string so the .strip() works
d = c.strip()  # because there were whitespaces
e = d("_")
print e

如果我那么做:

x = e[0]

我得到:

['name1

这会删除外部列表,但也会删除最后一个]。 我希望它看起来像:name1, name2 这样我才得到名字。

2 个答案:

答案 0 :(得分:0)

使用itertools.islice和列表理解。

>>> from itertools import islice
>>> with open("tmp.txt") as f:
...   [line.rstrip("\n").split("_") for line in islice(f, None, None, 2)]
...
[['name1', '', '', '1 2 3 4 5'], ['name2', '', '', '1 2 3 4']]

答案 1 :(得分:0)

保持代码语法不导入:

c=[]
input_of_file = '''name1___1 2 3 4 5
5=20=22=10=2=0=0=1=0=1something,something
name2___1 2 3 4
2=30=15=8=4=3=2=0=0=0;'''
a = input_of_file.split("\n")
b = a[::2] 
for item in b:
    new_item = item.split('__')
    c.append(new_item)

结果

c = [['name1', '_1 2 3 4 5'], ['name2', '_1 2 3 4']]
c[0][0] = 'name1'