相关疑难解决方法(0)

如何在Python2中处理可变长度子列表解包?

如何在Python2中处理可变长度子列表解包?

在Python3中,如果我有可变的子列表长度,我可以使用这个成语:

>>> x = [(1, 2,3,4,5), (2, 4,6), (3, 5,6,7,8,9)]
>>> for i, *item in x:
...     print (item)
... 
[2, 3, 4, 5]
[4, 6]
[5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

在Python2中,它是一个无效的语法:

>>> x = [(1, 2,3,4,5), (2, 4,6), (3, 5,6,7,8,9)]
>>> for i, *item in x:
  File "<stdin>", line 1
    for i, *item in x:
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这个问题与解释最大大小为n的可变长度列表的惯用法有一点不同,其中解决方案需要固定长度的知识.

这个问题特定于解决Python2中的问题.

python list nested-lists python-2.7

6
推荐指数
1
解决办法
501
查看次数

如何从元组中解压缩可选项?

我有一些输入值的列表,其中第一对是强制性的,最后一对是可选的.是否有任何简单的方法可以使用元组解包将这些分配给变量,如果缺少可选参数则获取None.

例如.

a = [1,2]   
foo, bar, baz = a
# baz == None
Run Code Online (Sandbox Code Playgroud)

理想情况下,可以是任何长度 - 包括超过3(其他物品扔掉).

目前我正在使用带有参数名称列表的zip来获取字典:

items = dict(zip(('foo', 'bar', 'baz'), a))
foo = items.get('foo', None)
bar = items.get('bar', None)
baz = items.get('baz', None)
Run Code Online (Sandbox Code Playgroud)

但它有点啰嗦.

python tuples iterable-unpacking

5
推荐指数
2
解决办法
3082
查看次数