Python 如何在这里找到下一个obj

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

这是我的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 < 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
>>>