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

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']]


顺序并不重要。我只担心每行以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']]

10-08 05:19