繁体   English   中英

嵌套列表理解等价

[英]Nested list comprehension equivalent

是否可以将以下代码替换为列表理解表达式?

input = ['1\t2,3\t4,5', '61\t7,8\t9,0']

res = []
li = [i.split() for i in input]
for i in li:
    l = [i[0]]
    l = l + [e.split(',') for e in i[1:]]
    res.append(l)

问题在于,每个子列表中的第一个元素应与其余元素区别对待。

我不得不说,考虑到可读性,这实际上并不是Pythonic。

>>> l = ['1\t2,3\t4,5', '61\t7,8\t9,0']
>>> [[i[0]]+[e.split(',') for e in i[1:]] for i in [x.split() for x in l]]
[['1', ['2', '3'], ['4', '5']], ['61', ['7', '8'], ['9', '0']]]
>>> input = ['1\t2,3\t4,5', '61\t7,8\t9,0']
>>> 
>>> [[a.split()[0]] + [b.split(',') for b in a.split()[1:]] for a in input]
[['1', ['2', '3'], ['4', '5']], ['61', ['7', '8'], ['9', '0']]]
>>> import csv
>>> data = ['1\t2,3\t4,5', '61\t7,8\t9,0']
>>> [x[:1] + list(csv.reader(x[1:], delimiter=','))
     for x in csv.reader(data, delimiter='\t')]
[['1', ['2', '3'], ['4', '5']], ['61', ['7', '8'], ['9', '0']]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM