我有以下代码,其思想是能够对some_list[j]
中的每个字符串在root
上进行迭代。我们的目标是远离嵌套for循环,学习一种更具python风格的方法。我想为some_list
中的第一项返回每个value
,然后为some_list
中的下一项重复。你知道吗
for i, value in enumerate(root.iter('{0}'.format(some_list[j])))
return value
有什么想法吗?你知道吗
编辑:根是
tree = ElementTree.parse(self._file)
root = tree.getroot()
我想你想做的是:
但实际上,
'{0}'.format(foo)
是愚蠢的;它只会做与str(foo)
相同的事情,但更慢,更难理解。很可能您已经有了字符串,所以您真正需要的是:您可以将它们合并到一行中,或者用
map(root.iter, some_list)
等替换genexpr,但这是基本思想。你知道吗无论如何,这里没有嵌套循环。有两个循环,但它们只是交错的,对于
some_list
中的每个项目,仍然只运行一次内部代码。你知道吗所以,给定一个包含多个列表的列表,您想返回每个列表的第一个元素吗?我可能没有正确理解你,但如果是这样,你可以使用列表理解…非常“Pythonic”;)
您可以尝试使用^{}
从
itertools
模块。它看起来像相关问题 更多 >
编程相关推荐