【发布时间】:2015-09-24 21:36:56
【问题描述】:
如何连接这样的列表:
buttons = [[['a','b','c'], '2'], [['d','e','f'], '3']]
进入
buttons = [[['a','b','c','2'], ['d','e','f','3']]]
我尝试访问三个索引并连接,但没有成功:
buttons[0][1]
【问题讨论】:
如何连接这样的列表:
buttons = [[['a','b','c'], '2'], [['d','e','f'], '3']]
进入
buttons = [[['a','b','c','2'], ['d','e','f','3']]]
我尝试访问三个索引并连接,但没有成功:
buttons[0][1]
【问题讨论】:
一种方法是将列表理解中的每个元素解包并连接两个部分:
>>> buttons = [[['a','b','c'], '2'], [['d','e','f'], '3']]
>>> [x + [y] for x, y in buttons]
[['a', 'b', 'c', '2'], ['d', 'e', 'f', '3']]
这是可行的,因为每个子列表都有两个元素;第一个元素分配给x,第二个元素分配给y。例如,对于buttons 中的第一个子列表,我们有:
x, y = [['a','b','c'], '2']
那么:
>>> x
['a','b','c']
>>> y
'2'
这两个部分然后像这样连接在一起:
x + [y] == ['a', 'b', 'c'] + ['2'] == ['a', 'b', 'c', '2']
【讨论】:
['2'] and ['3']
>>> import itertools
>>> l = [[['a','b','c'], '2'], [['d','e','f'], '3']]
>>> [list(itertools.chain.from_iterable(i)) for i in l]
[['a', 'b', 'c', '2'], ['d', 'e', 'f', '3']]
【讨论】: