Как я могу превратить один элемент в списке в несколько элементов, используя Python? - PullRequest
1 голос
/ 07 мая 2010

У меня есть список элементов, и каждый элемент состоит из четырех отдельных значений, разделенных вкладками:

['A\tB\tC\tD', 'Q\tW\tE\tR', etc.]

Я хочу создать большой список без вкладок, чтобы каждое значение было отдельным элементом:

['A', 'B', 'C', 'D', 'Q', 'W', 'E', 'R', etc.]

Как я могу это сделать в Python? Мне нужно это для моей курсовой работы, которая состоится сегодня вечером (полночь по Гринвичу), и я совершенно ошеломлен.

Ответы [ 3 ]

5 голосов
/ 07 мая 2010

Все сразу:

'\t'.join(['A\tB\tC\tD', 'Q\tW\tE\tR']).split('\t')

По одному:

[c for s in ['A\tB\tC\tD', 'Q\tW\tE\tR'] for c in s.split('\t')]

Или, если все элементы состоят из отдельных букв:

[c for s in ['A\tB\tC\tD', 'Q\tW\tE\tR'] for c in s[::2]]

Если естькотируй вкладки потом:

import csv
rows = csv.reader(['A\t"\t"\tB\tC\tD', 'Q\tW\tE\tR'], delimiter='\t')
[c for s in rows for c in s] # or list(itertools.chain.from_iterable(rows))
0 голосов
/ 08 мая 2010

Это должно работать:

t = ['A\tB\tC\tD', 'Q\tW\tE\tR']

t = reduce(lambda x, y: x + y, map(str.split,t))
0 голосов
/ 07 мая 2010

Домашний вопрос?

t = ['A\tB\tC\tD', 'Q\tW\tE\tR']
sum((x.split('\t') for x in t),[])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...