我有两个整数的Python列表:x
和y
。 x
的所有元素都出现在y
的某个位置,且只出现一次。对于x
的每个元素,我想知道y
中相应值的索引。然后我想将这些索引设置为列表z
。
下面的代码就像我刚才描述的那样工作。但是,对于一项我怀疑可能只需要几行左右就能提供更优雅解决方案的任务,这似乎有点笨拙。因此,我的问题是,可以重写以下代码的最少行数是多少?
z = [0 for i in range(len(x))]
for i, j in enumerate(x):
for k, l in enumerate(y):
if j==l:
z[i] = k
break
答案 0 :(得分:5)
这是一种方法:
z = [y.index(i) for i in x]