真的不知道这个适合哪里。我有一张单子:
>>>a = [1, 2, 3, 4, 5, 6, 7]
我怎样才能以这样的方式迭代它,它会先检查4,然后检查5,然后检查3,然后检查6,然后再检查2(对于更大的列表,依此类推)?我只能算出中间值
^{pr2}$
我真的不知道如何应用这个方法,也不确定我计算中间值的方法是最好的方法。我曾考虑过获取两个索引,在每次迭代之后,对每个索引加1和减1,但不知道如何使for循环遵守这些规则。在
至于我为什么需要这个,它是用来分析纸牌游戏中有效的打法,它会从一手牌的中间牌一直检查到每一头,直到一张有效的牌可以玩为止。在
Tags:
你可以继续从列表中间删除:
这并不是性能最佳的解决方案(从列表中删除项很昂贵),但它很简单-对于一个简单的游戏来说已经足够好了。在
编辑:
性能更稳定的解决方案是一个生成器,它计算元素位置:
^{pr2}$首先,here是一个非常有用的通用实用程序,可以交错两个序列:
这样,您只需
^{pr2}$imerge
与
你也可以玩索引游戏,例如:
相关问题 更多 >
编程相关推荐