Форум сайта python.su
Собственно, этот код выглядит корявым.
Как оптимальнее преобразовать список:
=> ?
task = self.config[taskName]
sourceText = [(os.path.splitext(os.path.basename(file))[0],
open(file, 'r', encoding=task['Source encoding']).read())
for file in glob.glob(task['Source files'])]
# Возможно, нужно улучшить...
separator = task['Split'] if 'Split' in task.keys() else None
if separator:
s = []
for file, text in sourceText:
s.extend([(file, t) for t in text.split(separator)])
sourceText = s
# ----------
Офлайн
В лоб?
arr = [(1, 'a,b'), (2, 'c,d,e')]
res = []
for ix, s in arr:
for char in s.split(","):
res.append((ix, char))
print(res)
Офлайн
Тогда уж
>>> l = [(1, 'a,b'), (2, 'c,d,e')]
>>> [(a, i) for a, b in l for i in b.split(',')]
[(1, 'a'), (1, 'b'), (2, 'c'), (2, 'd'), (2, 'e')]
Офлайн
Андрей СветловСпасибо, Андрей!
Тогда уж>>> l = [(1, 'a,b'), (2, 'c,d,e')]
>>> [(a, i) for a, b in l for i in b.split(',')]
[(1, 'a'), (1, 'b'), (2, 'c'), (2, 'd'), (2, 'e')]
separator = task['Split'] if 'Split' in task.keys() else None
if separator: sourceText = \
[(a, c) for a, b in sourceText for c in b.split(separator)]
Офлайн