Python列表操作:在列表中唯一元素的标记处获取值

Python列表操作:在列表中唯一元素的标记处获取值,python,numpy,Python,Numpy,我是python的新手,用自定义的问题语句弄脏了我的手,并用简单的代码片段实现了它们。我试图解决的问题定义是:如果我有一个重复元素列表,我希望根据它们的值对它们进行分组,检索它们在列表中出现的索引,并从列表中获取值 我尝试了下面的示例代码 import itertools import numpy as np lst = range(1,5) input_list= list(itertools.chain.from_iterable(itertools.repe

我是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]))

听起来你在找这样的东西:

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))

你能提供一个输入和预期输出的例子吗?那么你想得到唯一的值吗?不,我已经在-unique_array中有了唯一的值谢谢你的回答。我在寻找在指数[0 1 2]处发现的第1组的值为12,第3行重复在索引[3,4,5]处找到的组2的值是2(这是列表中位置3的值)打印(“在索引{}处找到的组{}的值是{}”。格式(uniq_-arr,result,uniq_-arr))-最后一个参数直接放置uniq_arr-我想使用类似“input_array[uniq_arr]”的内容,而不是直接给出唯一值的名称