python for循环,如何找到下一个值(对象)?
发布时间:2020-12-20 12:41:53 所属栏目:Python 来源:网络整理
导读:嗨,我正在尝试使用for循环找到每两个对象之间的差异减去彼此. 那么,如何在for循环中找到下一个值呢? for entry in entries: first = entry # Present value last = ?????? # The last value how to say? diff = last = first 解决方法 应该注意的是,这些解
嗨,我正在尝试使用for循环找到每两个对象之间的差异减去彼此.
那么,如何在for循环中找到下一个值呢? for entry in entries: first = entry # Present value last = ?????? # The last value how to say? diff = last = first 解决方法
应该注意的是,这些解决方案都不适用于发电机.为此,请参阅Glenn Maynards的优秀解决方案.
使用zip作为小列表: for current,last in zip(entries[1:],entries): diff = current - last 这会生成列表的副本(以及列表的两个副本中的元组列表),因此最好使用itertools来处理更大的列表 import itertools as it items = it.izip(it.islice(entries,1,None),entries) for current,last in items: diff = current - last 这将避免制作列表的副本和制作元组列表. 另一种不制作副本的方法是 entry_iter = iter(entries) entry_iter.next() # Throw away the first version for i,entry in enumerate(entry_iter): diff = entry - entries[i] 而另一种方式是: for i in xrange(len(entries) - 1): diff = entries[i+1] - entries[i] 这将创建一个迭代器,用于索引条目并将其前进一个.然后使用枚举来获得项目的指示. indice从0开始,因此指向前一个元素,因为我们循环了一个项目. 另外,正如Tyler在评论中指出的那样,如果你只想迭代这些差异,那么循环对于这样一个简单的问题可能是过度的. diffs = (current - last for current,last in it.izip(it.islice(entries,entries)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |