Python 如何在这里找到下一个obj
这是我的python代码:Python 如何在这里找到下一个obj,python,loops,Python,Loops,这是我的python代码: a=['aaa','bbb','oooo','qqqq','gggg'] for i in a: print i #how to get the next obj in this place . 当我得到i元素时,我想得到下一个代码 谢谢仅列举以下内容的列表就更容易了: a=['aaa','bbb','oooo','qqqq','gggg'] for idx, item in enumerate(a): print item if idx
a=['aaa','bbb','oooo','qqqq','gggg']
for i in a:
print i #how to get the next obj in this place .
当我得到i
元素时,我想得到下一个代码
谢谢仅列举以下内容的列表就更容易了:
a=['aaa','bbb','oooo','qqqq','gggg']
for idx, item in enumerate(a):
print item
if idx < len(a)-1:
print a[idx+1]
a=['aaa'、'bbb'、'ooo'、'qqqq'、'gggg']
对于idx,枚举(a)中的项目:
打印项目
如果idx
(编辑:修复了
索引器)只需为此枚举列表即可:
a=['aaa','bbb','oooo','qqqq','gggg']
for idx, item in enumerate(a):
print item
if idx < len(a)-1:
print a[idx+1]
a=['aaa'、'bbb'、'ooo'、'qqqq'、'gggg']
对于idx,枚举(a)中的项目:
打印项目
如果idx
(编辑:修复了索引器的问题)您可以在循环中获取列表中的当前项和下一项。因此
的循环在列表中迭代,同时列表偏移量为1:
for this,after in zip(a,a[1:]):
print this,after
但是,zip
在最短列表的末尾停止,因此您无法处理列表的最后一个元素。如果这是一个问题,请使用
在这种情况下,列表中最后一项的之后将为None
Python2.6中引入了izip_longest
,因此,如果您运行的是早期版本,您可以通过在较短列表的末尾添加None
来手动实现相同的效果:
for this,after in zip(a,a[1:] + [None]):
print this,after
您可以在Django模板中使用{%for x,y in somelist%}
,但您需要在模型中执行zip
,并将其存储在传递给模板的变量中 您可以在for
循环中获取列表中的当前项和下一项。因此
的循环在列表中迭代,同时列表偏移量为1:
for this,after in zip(a,a[1:]):
print this,after
>>> def twobytwo(it, last_single=False):
... guard = object()
... oe = guard
... for e in it:
... if oe != guard:
... yield oe, e
... oe = e
... if oe != guard and last_single:
... yield oe, None
...
>>> for a, b in twobytwo(['aaa','bbb','oooo','qqqq','gggg']):
... print a, b
...
aaa bbb
bbb oooo
oooo qqqq
qqqq gggg
>>> for a, b in twobytwo(['aaa','bbb','oooo','qqqq','gggg'], last_single=True):
... print a, b
...
aaa bbb
bbb oooo
oooo qqqq
qqqq gggg
gggg None
>>>
但是,zip
在最短列表的末尾停止,因此您无法处理列表的最后一个元素。如果这是一个问题,请使用
在这种情况下,列表中最后一项的之后将为None
Python2.6中引入了izip_longest
,因此,如果您运行的是早期版本,您可以通过在较短列表的末尾添加None
来手动实现相同的效果:
for this,after in zip(a,a[1:] + [None]):
print this,after
您可以在Django模板中使用{%for x,y in somelist%}
,但您需要在模型中执行zip
,并将其存储在传递给模板的变量中 一旦碰到最后一个元素,它就会内爆。这可以用于django模板。一旦碰到最后一个元素,它就会内爆。这可以用于django模板。我不明白你想要什么。显示输出应该是什么样子。我不明白你想要什么。显示输出应该是什么样子。'module'对象没有属性'izip_longest'@zjm1126-izip_longest
是在Python 2.6中引入的。我猜你正在运行一个早期版本。我对答案进行了编辑,以显示一种适用于您的替代方法。“module”对象没有属性“izip_longest”@zjm1126-izip_longest
是在Python 2.6中引入的。我猜你正在运行一个早期版本。我对答案进行了编辑,以显示一种适用于您的替代方法。
>>> def twobytwo(it, last_single=False):
... guard = object()
... oe = guard
... for e in it:
... if oe != guard:
... yield oe, e
... oe = e
... if oe != guard and last_single:
... yield oe, None
...
>>> for a, b in twobytwo(['aaa','bbb','oooo','qqqq','gggg']):
... print a, b
...
aaa bbb
bbb oooo
oooo qqqq
qqqq gggg
>>> for a, b in twobytwo(['aaa','bbb','oooo','qqqq','gggg'], last_single=True):
... print a, b
...
aaa bbb
bbb oooo
oooo qqqq
qqqq gggg
gggg None
>>>