如何解包列表?

4 投票
5 回答
9721 浏览
提问于 2025-04-16 07:50

当我以这种方式从列表中提取数据时

line[0:3], line[3][:2], line[3][2:]

我会得到一个数组和后面两个变量,这个结果是可以预期的:

(['a', 'b', 'c'], 'd', 'e')

我需要对这个列表进行处理,以便最终结果是

('a', 'b', 'c', 'd', 'e')

该怎么做呢?谢谢。

附言:是的,我知道我可以写第一个元素为 line[0], line[1], line[2],但我觉得那样的解决方案有点尴尬。

5 个回答

1

明显的答案是:把你的第一行改成这样:

line[0:3] + [line[3][:2], line[3][2:]]

这样做是可以的,前提是 line[0:3] 是一个列表。如果不是的话,你可能需要做一些小的调整。

1

试试这个。

line = ['a', 'b', 'c', 'de']
tuple(line[0:3] + [line[3][:1]] + [line[3][1:]])
('a', 'b', 'c', 'd', 'e')

注意: 我觉得你的切片逻辑有点问题。 如果 [2:] 返回了任何字符,那么 [:2] 必须返回两个字符。 请提供你的输入行。

4
from itertools import chain
print tuple(chain(['a', 'b', 'c'], 'd', 'e'))

输出结果:

('a', 'b', 'c', 'd','e')

撰写回答