我想有一个嵌套循环,内循环和外循环在同一个列表上迭代。同样在内环中,我不想和外环中有相同的元素。我还需要索引。你知道吗
直截了当的方法的一个例子
for i, line in enumerate(list_sentence):
for j, line2 in enumerate(list_sentence):
if i != j:
if line in line2:
doing_stuff()
正如第2行告诉你的,i和j不是对称的,因为第2行和第2行不一样。一种可能的解决办法是使对称。你知道吗
你能写一个更python的解决方案吗?这个问题主要是出于好奇。我认为有一种方法是使用集合的产品,但这会降低代码的可读性。你知道吗
对于这个特定的问题,
itertools.permutations
比我下面的建议要好。你知道吗“隐藏”要循环的项的复杂选择的一种通用方法是 将
for
和if
移动到生成器中。这样,主代码和重要的“dou stuff()”部分保持不变。生成器中的docstring本身可以解释发生了什么,如果需要的话-在主代码上:
我已经用过几次了,我有一个类来表示棋盘游戏一样的结构(象棋或棋盘),或者一个图像,并使用
__iter__
方法立即产生x,y坐标和单元格内容,作为一个元组。你知道吗而不是:
代码变为:
相关问题 更多 >
编程相关推荐