要让eta_at_list和eta_cos_values_list都是可迭代对象,可以将它们封装成一个自定义的迭代器或者使用生成器函数来实现。\n\n方法一:自定义迭代器\n可以创建一个自定义的迭代器类,实现__init__、__iter__和__next__方法。\n\npython\nclass MyIterator:\n def __init__(self, eta_at_list, eta_cos_values_list):\n self.eta_at_list = eta_at_list\n self.eta_cos_values_list = eta_cos_values_list\n self.index = 0\n\n def __iter__(self):\n return self\n\n def __next__(self):\n if self.index < len(self.eta_at_list) and self.index < len(self.eta_cos_values_list):\n eta_at = self.eta_at_list[self.index]\n eta_cos = self.eta_cos_values_list[self.index]\n self.index += 1\n return eta_at, eta_cos\n else:\n raise StopIteration\n\n# 使用示例\neta_at_list = [1, 2, 3]\neta_cos_values_list = [0.1, 0.2, 0.3]\nmy_iterator = MyIterator(eta_at_list, eta_cos_values_list)\nfor eta_at, eta_cos in my_iterator:\n print(eta_at, eta_cos)\n\n\n方法二:生成器函数\n使用生成器函数可以更简洁地实现迭代器的功能。\n\npython\ndef my_generator(eta_at_list, eta_cos_values_list):\n for i in range(min(len(eta_at_list), len(eta_cos_values_list))):\n yield eta_at_list[i], eta_cos_values_list[i]\n\n# 使用示例\neta_at_list = [1, 2, 3]\neta_cos_values_list = [0.1, 0.2, 0.3]\nfor eta_at, eta_cos in my_generator(eta_at_list, eta_cos_values_list):\n print(eta_at, eta_cos)\n\n\n无论使用自定义迭代器还是生成器函数,都可以将eta_at_list和eta_cos_values_list封装成可迭代对象。

Python 中将两个列表转换为可迭代对象:自定义迭代器和生成器函数

原文地址: https://www.cveoy.top/t/topic/n2qw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录