Операции со списком Python: получение значений по индексу уникальных элементов в списке - PullRequest
0 голосов
/ 25 сентября 2019

Я новичок в python, пачкающий свои руки самоопределяющимися задачами и выполняющий их с помощью простых фрагментов кода.Определение проблемы, которое я пытаюсь решить: если у меня есть список повторяющихся элементов, я бы хотел сгруппировать их по их значениям, получить их индексы, по которым они встречаются в списке, и получить значения из списка.

Я попробовал пример кода ниже.

    import itertools
    import numpy as np
    lst = range(1,5)
    input_list= list(itertools.chain.from_iterable(itertools.repeat(x, 3) for x in lst))
    print("Input list is {}".format(input_list))
    unique_array = np.unique(np.array(input_list))
    print("Unique Values in the Input List is {}".format(unique_array))
    for i in unique_array:
    for result in np.where(input_list==i):
    print("The Group is {} and it is found at indices {}".format(i, result))
    for j in range(len(result)):
    print("The values of group {} found at indices {} are {}".format(i,result,input_list[j]))

1 Ответ

0 голосов
/ 25 сентября 2019

Похоже, вы ищете что-то вроде этого:

import itertools
import numpy as np


lst = range(1,5)
input_list= list(itertools.chain.from_iterable(itertools.repeat(x, 3) for x in lst))
print("Input list is {}".format(input_list))
unique_array = np.unique(np.array(input_list))
print("Unique Values in the Input List is {}".format(unique_array))
for group_num, uniq_arr in enumerate(unique_array):
    result = np.where(input_list==unique_array[group_num])[0]
    for results in result:
        print("The Group is {} and it is found at indices {}".format(uniq_arr, result))
    for results in result:
        print("The values of group {} found at indices {} are {}".format(input_list[uniq_arr],result,uniq_arr))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...