首页 > 解决方案 > 如何遍历嵌套列表以分配函数参数?

问题描述

我正在尝试做的是循环遍历元组“年”列表以分配(yS1,yE1),(yS2,yE2)等,以调用投资组合(x,y)以获取尽可能多的“年开始”和“年终” “就像我在我的列表中的“年”一样。

yS1 = '2013-01-01'
yE1 = '2015-01-01'

yS2 = '2015-01-01'
yE2 = '2017-01-01'

yS3 = '2017-01-01'
yE3 = '2019-01-01'

yS4 = '2019-01-01'
yE4 = '2021-01-01'

years = [(yS1,yE1),(yS2,yE2),(yS3,yE3),(yS4,yE4)]

def portfolio(yearS,yearE):
for x in years:
      portfolio(x)

此代码导致以下结果:

TypeError                                 Traceback (most recent call last)
<ipython-input-84-003ce9caf9f8> in <module>
     53 
     54 for x in years:
---> 55     portfolio(x)

TypeError: portfolio() missing 1 required positional argument: 'yearE'

我能做些什么?我也尝试在我的列表中使用 [] 而不是 () 。我的理由是这个循环应该导致portfolio(yS1,yE1)等等。

标签: pythonlistfunction

解决方案


这非常适合破坏,也许还可以为 x 和 y 所包含的内容命名,例如“start_date”、“end_date”。

arr = [(1, 2), (3, 4)]

def portfolio(yearS, yearE):
    pass

for start_date, end_date in arr:
    portfolio(start_date, end_date)

我发现这更清楚然后使用 splat 运算符 (*) 或索引元组 ([0] 等)


推荐阅读