2014-07-25 6 views
1

У меня есть набор данных, который говорит мне отладчик pdb:Преобразование типа списка python

set1 : [(4.4,), (4.8,), (4.2,), (4.0,), (4.2,), (4.8,), (2.0,), (2.4,), (3.0,)] 

Мне нужно, чтобы это было в формате ниже;

set2 : [4.4, 4.8, 4.2, 4.0, 4.2, 4.8, 2.0, 2.4, 3.0] 

Какие типы, или вариации типов, устанавливаются 1 и 2, и как вы бросили, или в противном случае, набор 1 в набор 2.

Я новичок в Python и требуется, чтобы сделать это в спешке, поэтому мне некогда учиться в деталях, я должен только сейчас - любая помощь будет очень признательна.

Спасибо!

ответ

1

Попробуйте с:

set1 = [(4.4,), (4.8,), (4.2,), (4.0,), (4.2,), (4.8,), (2.0,), (2.4,), (3.0,)] 
set2 = map(lambda x: x[0], set1) 

set1 список одноэлементных кортежей, map возвращает результат применения функции передается в качестве первого параметра коллекции прошло как второй параметр. В этом ответе эта функция возвращает тот, который возвращает первый элемент кортежа.

Более вещий способ сделать это состоит в использовании список понимание:

set2 = [x[0] for x in set1] 
+0

@MarkCorrigan К сожалению, это был 'set1' , в моей оболочке python я назначил его как 'c', уже отредактировал ответ. –

+0

вот он работает сейчас, спасибо за это! –

+0

@MarkCorrigan Любое время –

0

Попробуйте использовать itertools.chain

from itertools import chain 

set1 =[(4.4,), (4.8,), (4.2,), (4.0,), (4.2,), (4.8,), (2.0,), (2.4,), (3.0,)] 

print list(chain.from_iterable(set1)) 
#output [4.4, 4.8, 4.2, 4.0, 4.2, 4.8, 2.0, 2.4, 3.0] 
0

Данные выглядит очень знакомо и заслуживает лечения с zip

print list(zip(*set1)[0]) 
Смежные вопросы