python-将文件中的不同列附加到不同的列表?

python-将文件中的不同列附加到不同的列表?,python,file,list,Python,File,List,我有一个以制表符分隔的文件,如下所示: A 3 A 6 B 6 B 9 C 0 C 2 LIST = [['A', '3'], ['B', '6'], ['C', '0'], ['A', '6'], ['B', '9'], ['C', '2']] 我希望阅读以下文件: A 3 A 6 B 6 B 9 C 0 C 2 LIST = [['A', '3'], ['B', '6'], ['

我有一个以制表符分隔的文件,如下所示:

A    3    A    6
B    6    B    9
C    0    C    2
LIST = [['A', '3'], ['B', '6'], ['C', '0'], ['A', '6'], ['B', '9'], ['C', '2']]
我希望阅读以下文件:

A    3    A    6
B    6    B    9
C    0    C    2
LIST = [['A', '3'], ['B', '6'], ['C', '0'], ['A', '6'], ['B', '9'], ['C', '2']]
顺序并不重要。我只关心的是,每行以两个增量读取,并分配给一个子列表

有什么建议吗

谢谢,
S:-)

最直接的方法是:

>>> n = []
>>> for line in open(fname):
    els = line.split('\t')
    n.append(els[:2])
    n.append(els[2:])


>>> n
[['A', '3'], ['A', '6'], ['B', '6'], ['B', '9'], ['C', '0'], ['C', '2']]
>>> g = (line.split('\t') for line in open(fname))
>>> [els[i:i+2] for els in g for i in range(0, 4, 2)]
[['A', '3'], ['A', '6'], ['B', '6'], ['B', '9'], ['C', '0'], ['C', '2']]
也许更有效的方法是:

>>> n = []
>>> for line in open(fname):
    els = line.split('\t')
    n.append(els[:2])
    n.append(els[2:])


>>> n
[['A', '3'], ['A', '6'], ['B', '6'], ['B', '9'], ['C', '0'], ['C', '2']]
>>> g = (line.split('\t') for line in open(fname))
>>> [els[i:i+2] for els in g for i in range(0, 4, 2)]
[['A', '3'], ['A', '6'], ['B', '6'], ['B', '9'], ['C', '0'], ['C', '2']]

这个问题实际上允许一些Pythonic解决方案

l = open(fname).read().split()
LIST = zip(l[::2], l[1::2])
就这些。“”

或者我们可以:

这些方法的其他好处是,它们将成对地读取文件,无论是4列(如示例中所示)还是6列、2列。。。随便


另见 及

eeeewww:)。应该有更好的方法来做到这一点。至少说
(0,2)
,而不是说
范围(0,4,2)
。另外,如果只执行
split()
(无参数),它将在空格、制表符、新行上拆分。。。您只需执行
g=open(fname).read().split()