我在文件中有一个列表, 看起来像这样
c4a24534,2434b375,e750c718, ....
我分开了#34;,"并带来以下列表。
x=
['c4a2', '4534']
['2434', 'b375']
['e750', 'c718']
我需要从这个
中创建两个新列表i=
'c4a2'
'2434'
'e750'
和
q=
'4534'
'b375'
'c718'
我试过了:
for x in line:
x = [i.split() for i in x]
有了这个,我正在分裂x。这给了我"我"部分但我如何得到其余的" q" ?
答案 0 :(得分:2)
如果您已阅读列表列表,请使用zip()
将列转换为行:
file_result = [
['19df', 'b35d']
['fafa', 'bbaf']
['dce9', 'cf47']
]
a, b = zip(*file_result)
答案 1 :(得分:1)
理所当然地认为您已经解析了该文件:
x = [['c4a2', '4534'], ['2434', 'b375'], ['e750', 'c718']]
i = [a[0] for a in x] # ['c4a2', '2434', 'e750']
q = [a[1] for a in x] # ['4534', 'b375', 'c718']
这将获取每个子列表的第一个和第二个元素,并将其放入一个新变量中。
答案 2 :(得分:1)
假设这是input.txt
文件的内容:
c4a24534,2434b375,e750c718
使用zip()
分成两个列表:
with open('input.txt') as f:
i, q = zip(*((x[:4], x[4:]) for line in f for x in line.split(',')))
print i
print q
打印:
('c4a2', '2434', 'e750')
('4534', 'b375', 'c718')
这些是tuples,如果您需要从中制作列表,请在每个列表上调用list()
:
print list(i)
print list(q)
答案 3 :(得分:0)
#!/usr/bin/python
import ast
file = open("file.txt","r")
i = list()
q = list()
for line in file:
testarray = ast.literal_eval(line)
q.append(testarray.pop())
i.append(testarray.pop())
print(i)
print(q)
类似的东西?
答案 4 :(得分:0)
您可以使用zip
将列表分成两个集合。
x=[
['c4a2', '4534'],
['2434', 'b375'],
['e750', 'c718']
]
i,q = zip(*x)
print i
print q
结果:
('c4a2', '2434', 'e750')
('4534', 'b375', 'c718')
但这些是元组。如果你真的想要列表,你需要转换它们。
i,q = map(list, zip(*x))
#or:
i,q = [list(tup) for tup in zip(*x)]
#or:
i,q = zip(*x)
i, q = list(i), list(q)