如何解包列表?
当我以这种方式从列表中提取数据时
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')