python - 如何将列表元素中的参数提供给类?
问题描述
我正在尝试将几个列表中的参数提供给一个类。我试过这些:
for i in range(len(myList)): # or just myList
myList.append(MyClass(names[i], cities[i], ages[i], problems[i]))
或者
for i in range(len(myList)):
name = names[i]
city = cities[i]
age = ages[i]
problem = problems[i]
myList.append(MyClass(name, city, age, problem))
但它不起作用,当我打印 myList 时没有错误,它只是空的。我可能在做一个错误的逻辑,但我无法弄清楚。
解决方案
你可以zip
列出清单。
result = []
for data in zip(names, cities, ages, problems):
name = data[0]
city = data[1]
age = data[2]
problem = data[3]
result.append(MyClass(name, city, age, problem))
让我们通过这种方法使用元组解包。
result = []
for name, city, age, problem in zip(names, cities, ages, problems):
result.append(MyClass(name, city, age, problem))
所有这些都可以使用列表推导式写在一行中。
result = [MyClass(name, city, age, problem) for name, city, age, problem in zip(names, cities, ages, problems)]
或者让 Python 为你做元组解包
result = [MyClass(*data) for data in zip(names, cities, ages, problems)]
推荐阅读
- javascript - 如何使用 HTML (JavaScript) 代码将常规文本变量转换为变量?
- javascript - 在反应js中动态上传图像
- apache-spark - 如何在 Pyspark IDE(Pycharm/Eclipse)中配置外部 JAR
- database - 对于大于 28 G 的大表,SQLite3 读写速度极慢
- c - 是否可以检测到 C 结构有一个字段?
- java - Spingboot-尝试运行我的 jar 文件时在 META-INF/spring.factories 中找不到自动配置类
- html - 文字不会超过图像
- node.js - 将修饰符与 Objection.js 关系映射一起使用
- azure - Azure 存储异地冗余解决方案,同时实现读取和写入的高可用性
- android - Andorid:用向外的曲线画一个圆