在Python中的子列表中连接列表和数字[重复]

Posted

技术标签:

【中文标题】在Python中的子列表中连接列表和数字[重复]【英文标题】:Concatenate list and number in a sublist in Python [duplicate] 【发布时间】: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]

【问题讨论】:

【参考方案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'] @SirParselot:添加了对该方法的说明。【参考方案2】:
>>> 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']]

【讨论】:

以上是关于在Python中的子列表中连接列表和数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从python中的列表中获取最后一个数字[重复]

Python连接列表[重复]

如何使用 python 的 networkx 模块从节点列表生成完全连接的子图

如何使用 lambda 删除列表列表中数字下方的元素? Python [重复]

使列表中的所有数字成为3位数字[重复]

如何在适当的位置反转列表中的子列表?