假设有以下列表:
foo = [(1, 2, 3, 4), (5, 6, 7, 8)]
,是否可以迭代该列表并仅解压内部元组的前两个元素?通常的方法是:{a: b for a, b, _, _ in foo}
,但如果foo
被修改(程序更改)并且元组现在包含5个元素而不是4个元素,则会出错(需要相应地修改列表推导式)。我喜欢对元素进行命名,而不是调用{f[0]: f[1] for f in foo}
,因此理想情况下,应该有一种“吸收所有未解压变量”的方法,这样可以调用 {a: b for a, b, absorb_rest in foo}
。 如果可能的话,无论元组中包含多少元素(只要至少有2个元素),都没有关系。
{1: 2, 5: 6}
,但那只是一个例子。我想从元组中提取前两个元素,因此例如,如果我要查找[a + b for a, b, _, _ in foo]
,我期望得到[3, 11]
。 - orange