在Python中的lambda中迭代和比较
非家庭作业 我有一个浮动列表在Python中的lambda中迭代和比较,python,lambda,Python,Lambda,非家庭作业 我有一个浮动列表x,我想把它变成listy,一个包含x中所有第十个元素的列表 出于我自己的原因,我真的很想用少量的行来完成这项工作。我想出了这样的办法: i = 0 y = filter(lambda x: (++i)%10; x) 理论上,这应该是可行的,i已经定义,并且++i通常会将一个变量添加到变量i,然后继续表达式 不幸的是,++在Python中不存在 有什么类似蟒蛇的方法吗 我的另一个想法是使用映射,让表达式将元素推送到列表y 如果我能说得更清楚,请告诉我。使用: 使用:
x
,我想把它变成listy
,一个包含x
中所有第十个元素的列表
出于我自己的原因,我真的很想用少量的行来完成这项工作。我想出了这样的办法:
i = 0
y = filter(lambda x: (++i)%10; x)
理论上,这应该是可行的,i
已经定义,并且++i
通常会将一个变量添加到变量i
,然后继续表达式
不幸的是,++
在Python中不存在
有什么类似蟒蛇的方法吗
我的另一个想法是使用映射,让表达式将元素推送到列表y
如果我能说得更清楚,请告诉我。使用:
使用:
如果索引%10==0,
[索引的值,枚举中的值(浮动列表)]
呢?如果索引%10==0,[索引的值,枚举中的值(浮动列表)]
呢?使用以下替代方法:
使用的替代方案:
值得注意的是,在这种情况下,切片更好。但是,在过滤条件更复杂的情况下,这种技术值得了解。值得注意的是,在这种情况下,切片效果更好。然而,在过滤标准更复杂的情况下,这种技术值得了解。我以前从未见过这种情况,因为尽管我已经使用Python一段时间了,但我还没有完全探索过很多更具Python风格的做事方式。谢谢美丽的。我以前从未见过这种情况,因为尽管我已经使用Python一段时间了,但我还没有完全探索过很多更具Python风格的做事方式。谢谢
>>> x = range(1,101)
>>> y = x[9::10] # 9 -> start from 10th, 10: step
>>> y
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
>>> x = range(1, 101)
>>> i = itertools.count(1)
>>> y = filter(lambda item: next(i) % 10 == 0, x)
>>> y
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]