2015-06-17 2 views
3

У меня есть список списков в Python ищет, как это:питон вложен список постижение конкатенация

[['a', 'b'], ['c', 'd']] 

Я хочу, чтобы придумать строку, как это:

a,b;c,d 

Так списки должны быть разделены ;, а значения этого же списка должны быть разделены ,

До сих пор я пробовал ','.join([y for x in test for y in x]), который возвращает a,b,c,d. Не совсем там, пока, как видите.

+0

«Таким образом, списки должны быть разделены с, а значения одного и того же списка должны быть разделены с,» - это не список python. Это строка – matcheek

+2

'';'. Join (','. Join (xs) для xs в lst)' – falsetru

+0

yes, окончательный вывод должен быть строкой. будет соответствующим образом обновлять вопрос, чтобы это было ясно. – beta

ответ

8
";".join([','.join(x) for x in a]) 
+0

Мои фактические данные содержат значения с плавающей запятой:/ и python теперь ошибки 'TypeError: sequence item 0: expected str instance, float found' ... – beta

+0

В этом случае мне нужно использовать этот код:' ";". Join ([','. join (map (str, x)) для x в значении]) ' – beta

6
>>> ';'.join(','.join(x) for x in [['a', 'b'], ['c', 'd']]) 
'a,b;c,d' 
0

Чтобы сделать это функционально можно использовать карту:

l = [['a', 'b'], ['c', 'd']] 


print(";".join(map(".".join, l))) 
a.b;c.d