我需要一次返回两个值,所以我有:
class IterableObject(object):
def __iter__(self):
for item in self.__dict__:
return self.__dict__[item + 1], self.__dict__[item]
Run Code Online (Sandbox Code Playgroud)
所以我可以:
myObj1, myObj2 = IterableObject()
value = myObj1.balance - myObj2.balance
Run Code Online (Sandbox Code Playgroud)
当然它没有用.我究竟做错了什么?我想我不能在这样的项目上增加价值.
在itertools文档中,有一个示例函数pairwise,可以将其复制到项目中:
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)
Run Code Online (Sandbox Code Playgroud)
使用它像:
for x1, x2 in pairwise(some_iterable):
# etc..
Run Code Online (Sandbox Code Playgroud)
请注意,当您迭代时dict,项目不一定按顺序返回,因此您应该先排序.
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |