[英]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.