Предположим, у меня есть список:
nums = [3,3,1,5,6]
Я хочу использовать списочное понимание, чтобы перебрать этот список с двумя переменными и сообщать индекс переменных во время циклического прохождения. У меня есть следующий код ниже.
indices = [print(nums.index(x),nums.index(y)) for x in nums for y in nums]
Проблема, с которой я сталкиваюсь - это вывод:
0 0
0 0
0 2
0 3
0 4
0 0
0 0
0 2
0 3
0 4
2 0
2 0
2 2
2 3
2 4
3 0
3 0
3 2
3 3
3 4
4 0
4 0
4 2
4 3
Как вы заметите, индекс "1" никогда не печатается, потому что nums.index (x) будет сообщать только о первом экземпляре найденного элемента, а не о местонахождении самого элемента.
Как мне сделать так, чтобы результаты печатались точно? В качестве примера желаемого вывода я сделал все значения уникальными и переписал код.
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
2 4
3 0
3 1
3 2
3 3
3 4
4 0
4 1
4 2
4 3
4 4