我有一个包含0到100之间值的元素的长列表。 我想要做的是找到我的元素占据值[0,2]的所有位置。然后找出2到4之间的所有值的位置,等等,直到98和100。
让我们拨打包含值'' list''的列表。然后让我们调用结果列表p_x。其中x表示我们找到的位置。
我设法得到了我想要的方式: p_61 = N.where((list> = 60)&(list< = 62))
我现在的问题是:我如何循环这个,以便我得到所有我想要的p_x?
答案 0 :(得分:0)
import itertools
l = list(range(10))
## If you just want the values:
print([(x,y) for (x,y) in itertools.combinations(l, 2) if abs(x-y)==2])
## If you want the positions:
for i, x in enumerate(l):
for j, y in enumerate(l):
if j <= i:
continue
if abs(x-y) == 2:
print(i, j)
## If you want them stored in lists in a dictionary:
d = {}
for i, x in enumerate(l):
for j, y in enumerate(l):
if j <= i:
continue
if abs(x-y) == 2:
k = 'p_{}'.format(x+1)
try:
d[k].append((i,j))
except KeyError:
d[k] = [(i,j)]