这是一个非常基本的语法问题,我只是不知道该怎么做/无法弄清楚如何寻找解释.基本上,你可以很容易地比较/计算迭代的连续项之间的事物,比如说:
for i in range(len(iterable)):
if iterable[i] == iterable[i + 1]:
do whatever
Run Code Online (Sandbox Code Playgroud)
但似乎肯定应该有一种方法可以做到这一点而不会搞乱范围(len())的事情?比如,我应该能够拥有
for item in iterable:
if item == nextitem:
do whatever
Run Code Online (Sandbox Code Playgroud)
除了"nextitem"将是某种关键字或切片语法或...我真的不知道它会是什么,我只是觉得它必须存在.我认为for item, nextitem in iterable可能会工作,但这似乎只是指迭代中的元组.我在这找什么?
列表理解很棒。是否有一种优雅、灵活的方式来进行列表理解,在项目进行时将项目相互附加,而不是将它们全部放在一个列表中?
IE,我有一些理解[func(x) for x in y if z]会吐出来[['a','b'],['c','d'],['e','f']],我可以写什么来代替吐出来['a','b','c','d','e','f']?
显然我可以做到
alist = []
for x in y:
if z:
alist += func(x)
Run Code Online (Sandbox Code Playgroud)
但那是四五行代码!感觉必须有一种方法可以像列表理解一样简单易行。