обработка списка списка

Я работаю над списками списка

вход:

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

и я ищу выход:

 s = ['a_b_c_d','a_b_c_d','a_b_c_d'] 

Пожалуйста, дайте мне знать, как я могу это сделать, используя понимание списка.

 >>> x = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']] >>> map('_'.join, zip(*x)) ['a_b_c_d', 'a_b_c_d', 'a_b_c_d'] 

… хотя постижение списка @ aix более понятно для списка.

 In [6]: x = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']] In [7]: ['_'.join(s) for s in zip(*x)] Out[7]: ['a_b_c_d', 'a_b_c_d', 'a_b_c_d'] 

В соответствии с запросом это использует понимание списка. См. Ответ @ eumiro для решения, основанного на map() которое, как мне кажется, так же хорошо.