python - 通过函数传递多个列表
问题描述
我想使用 3 个列表作为函数的参数。也许我的整个逻辑在这一点上是错误的,但我想做的是使用两个列表来创建迭代器来解析第三个列表。顺序很重要,因此第一个和第二个列表的第一个元素将给出第一个和最后一个索引等。
我的代码只给出了第一个子列表,当然我想拥有所有这些子列表。
A=[1, 3, 4, 6]
B=[3, 8, 5, 8]
C=['A', 'B','C', 'D', 'E', 'A', 'B', 'A', 'D']
def newlists(entirelist, initiating, terminating):
for initindex in initiating:
for termindex in terminating:
parsed_list = entirelist[initindex:termindex]
return parsed_list
all_sublists = newlists(C, A, B)
我需要以下输出或类似的东西来获取子列表:
all_sublists = [['B','C'],['D','E', 'A', 'B', 'A'],['E'],['B','A']]
解决方案
你可以使用理解来得到你想要的:
A=[1, 3, 4, 6]
B=[3, 8, 5, 8]
C=['A', 'B','C', 'D', 'E', 'A', 'B', 'A', 'D']
def newlists(entirelist, initiating, terminating):
return [entirelist[i:j] for i, j in zip(initiating, terminating)]
print(newlists(C, A, B))
#[['B', 'C'], ['D', 'E', 'A', 'B', 'A'], ['E'], ['B', 'A']]
推荐阅读
- flutter - Flutter Web App:XMLHttpRequest 错误 - 响应标头 _map
不支持的操作:未知库? - python - 提高将 JSON 字符串列表转换为 Dataframe 的性能
- machine-learning - 微调 Resnet 50 不能很好的准确性和验证是小我如何改进?
- ios - 是否可以从第三方/受信任的应用程序深度链接到 App Clips (iOS)?
- javascript - 如何在 Web Flutter 中使用 tfjs 模型 /posenet
- apache-spark - 无法使用 spark-ec2 在 aws 上创建 spark 集群:每 30 秒重试一次错误
- vue.js - 如何更改 Vue 中的 url?
- string - TypeError: write() 参数必须是 str,而不是当变量已经是字符串时的字节
- mongodb - 无法连接到 ubuntu 18.04 GCP 服务器中的 MongoDB
- sql - 在红移中以滚动 12 个月为基础迭代生成的系列