python - 如何遍历嵌套列表以分配函数参数?
问题描述
我正在尝试做的是循环遍历元组“年”列表以分配(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)
等等。
解决方案
这非常适合破坏,也许还可以为 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] 等)
推荐阅读
- python - 我面临一个 TypeError:'float' 对象不可调用
- javascript - Chrome 扩展弹出窗口从上一个弹出窗口中获取选项卡的 URL
- apache-kafka - 无法从 kafka-console-producer 向 Kafka 中的主题生成消息
- spring - 如何在自定义表单 Spring Boot 中包含多种身份验证方法(默认 UserDetailsService、OAuth2 Google 登录)?
- enums - IronPython中是否有类似于ENUM的东西
- javascript - 在 List Uncaught TypeError 中设置图标时出错:无法设置未定义的属性“innerHTML”
- angularjs - angularjs + Kendo Grid 聚合“Sum”的多列分组问题
- docker - 如何在启动服务之前等待 mysql docker-entrypoint-initdb
- python-3.x - 等到所有其他协程都被阻塞?
- django - PasswordResetView 的 Django 权限