2014-01-06 7 views
0

У меня есть список, похожий на:Как разбить список питона запятой

industries_list = ["Computers, Internet","Photography, Tourism","Motoring, Manufacturing"] 

Как я могу разделить этот список, так что выход будет что-то вроде:

industries_list = [["Computers","Internet"],["Photography","Tourism"],["Motoring","Manufacturing"]] 

Я попытался преобразуя его в строку, разделив его запятой, а затем вернем в список, но это не дало моих результатов, которые я искал.

+0

Спасибо за ответы, все из вас отвечает на произведения ':') – Renier

ответ

2

Использование списка Постижение:

>>> industries_list = ["Computers, Internet","Photography, Tourism","Motoring, Manufacturing"] 
>>> [s.split(',') for s in industries_list] 
[['Computers', ' Internet'], ['Photography', ' Tourism'], ['Motoring', ' Manufacturing']] 

И удалить пробельные:

>>> from string import strip 
>>> [map(strip, s.split(',')) for s in industries_list] 
[['Computers', 'Internet'], ['Photography', 'Tourism'], ['Motoring', 'Manufacturing']] 

Вы также можете использовать чистый лист-понимание (встроенный список постижение):

>>> [[w.strip() for w in s.split(',')] for s in industries_list] 
[['Computers', 'Internet'], ['Photography', 'Tourism'], ['Motoring', 'Manufacturing']] 
+0

Если вы используете 'карту()', не знаю, что это не будет корректно работать на Python 3 и I» d используйте 'map (str.strip, s.split (','))' вместо импорта. –

+0

спасибо за подробный ответ – Renier

1

Разделить каждое значение на ',' в понимании списка:

industries_list = [s.split(',') for s in industries_list] 

Вы можете стирают лишние пробелы вокруг результатов:

industries_list = [[w.strip() for w in s.split(',')] for s in industries_list] 

Демо:

>>> industries_list = ["Computers, Internet","Photography, Tourism","Motoring, Manufacturing"] 
>>> [s.split(',') for s in industries_list] 
[['Computers', ' Internet'], ['Photography', ' Tourism'], ['Motoring', ' Manufacturing']] 
>>> [[w.strip() for w in s.split(',')] for s in industries_list] 
[['Computers', 'Internet'], ['Photography', 'Tourism'], ['Motoring', 'Manufacturing']] 
3

Использование .split на классе строки:

>>> industries_list=["Computers, Internet","Photography, Tourism","Motoring, Manufacturing"] 
>>> [var.split(',') for var in industries_list] 
[['Computers', ' Internet'], ['Photography', ' Tourism'], ['Motoring', ' Manufacturing']] 

Если вам не нужны пробелы:

>>> [[s.strip() for s in var.split(',')] for var in industries_list] 
[['Computers', 'Internet'], ['Photography', 'Tourism'], ['Motoring', 'Manufacturing']] 

Live demo.

Смежные вопросы