作者uranusjr (←这人是超级笨蛋)
看板Python
标题Re: [闲聊] list/tuple unpacking
时间Tue Sep 11 23:54:11 2012
※ 引述《Reylod (Reylod)》之铭言:
: 我的问题是这样的
: tutorial里说过可以利用unpacking来分别assign
: 例如a, b, c = [1, 2, 3] 或是lst[0:2] = [3, 4]
: 那麽可不可以把variable跟list混用呢?
: 像是a, lst[0:2] = [1, 3, 4]
: 我自己试过一些组合都没有成功
: 请问有没有类似的作法?
: 谢谢
lst[0:2] 也是一个 list
所以 a, list[0:2] 是一个 tuple, 里面包含两个元素
[0] 是 a, [1] 是 list[0:2]
如果你用 Py3K, 可以用 star operator 把 list 给 unpack
lst = [] # 需要先定义 lst
a, *lst[0:2] = [1, 2, 3] # lst[0:2] 被 unpack 後和 a 组成一个三元素的 tuple
不过 Python 2.x 就没招了, 只能乖乖来
最接近的一行作法应该是这样吧
lst = []
(a,), lst[0:2] = [1, 2, 3][:1], [1, 2, 3][1:]
--
"问おう、贵方が私のマスターか?"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146
1F:推 Reylod:嗯,我是用2.7的,也有试过a, *lst但是syntax error, TT 09/11 23:57