Python: 在获取索引的同时解包内层嵌套元组/列表

46 投票
1 回答
13537 浏览
提问于 2025-04-16 01:49

我对使用 enumerate() 这个函数很熟悉:

>>> seq_flat = ('A', 'B', 'C')
>>> for num, entry in enumerate(seq_flat):
        print num, entry
0 A
1 B
2 C

我想对一个嵌套列表做同样的事情:

>>> seq_nested = (('A', 'Apple'), ('B', 'Boat'), ('C', 'Cat'))

我可以用下面的方法来解包它:

>>> for letter, word in seq_nested:
        print letter, word
A Apple
B Boat
C Cat

那我应该怎么解包才能得到以下结果呢?

0 A Apple
1 B Boat
2 C Cat

我知道的唯一方法是用一个计数器来增加,这在Python中不太优雅。我想知道有没有更好的方法?

1 个回答

88

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这就像从一个箱子里拿东西,然后把它放到另一个箱子里。

有些时候,我们会用到“函数”。函数就像一个小工具,可以帮助我们完成特定的任务。比如说,我们可以有一个函数专门用来计算两个数字的和。每次我们需要计算时,就可以调用这个函数,而不需要每次都写一模一样的代码。

在编程的世界里,代码就像是给计算机的指令。我们写代码,告诉计算机该做什么。计算机会按照我们的指令一步一步地执行。

有时候,代码中会有一些占位符,比如

for i, (letter, word) in enumerate(seq_nested):
  print i, letter, word
,它们是用来表示某些特定的代码片段。我们在讨论时可以用这些占位符来简化表达,等到真正需要的时候再填上具体的代码。

撰写回答