Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python列表中查找未使用类似值分组的项_Python - Fatal编程技术网

在python列表中查找未使用类似值分组的项

在python列表中查找未使用类似值分组的项,python,Python,我正在尝试(使用Python)为列表中没有使用类似值分组的项获取索引列表 例如,给定列表[1,1,0,0,1,1,0,0]索引4,5,6,7处的项目是错误的,因为它们并没有和第一组相似的值分组。第一次在列表中看到一个项目或类似的项目组被认为是正确的位置,所以顺序并不重要。理想情况下,我会得到一个索引列表,如[4,5,6,7]您能检查一下这是否适合您吗 input_list=[1,1,0,0,1,1,0,0] dict1={} #dictionary to store the values ret

我正在尝试(使用Python)为列表中没有使用类似值分组的项获取索引列表


例如,给定列表
[1,1,0,0,1,1,0,0]
索引4,5,6,7处的项目是错误的,因为它们并没有和第一组相似的值分组。第一次在列表中看到一个项目或类似的项目组被认为是正确的位置,所以顺序并不重要。理想情况下,我会得到一个索引列表,如
[4,5,6,7]

您能检查一下这是否适合您吗

input_list=[1,1,0,0,1,1,0,0]
dict1={} #dictionary to store the values
return_list=[]

for i,v in enumerate(input_list):
    x=dict1.get(v)
    if(x!=None and x!=i-1):
        return_list.append(i)
    else:
        dict1[v]=i
print(return_list)
        
输出:

[4, 5, 6, 7]
>>> 

像这样的怎么样

def checkgrouped(列表:列表)->列表:
usedvalues=[]#存储已使用的值
badindexes=[]#存储无效项的索引
对于范围内的i(len(List)):#迭代范围而不是列表本身,以便于检查相邻项和获取索引
if List[i]in usedValue:#检查项目是否已存储在used value中
badindexes.append(i)#如果项无效,则将项的索引附加到坏索引
elif列表[i]!=列表[i+1]:#检查项目是否与下一个项目相同
附加(列表[i])#将项附加到已用值列表中
返回不良索引

以下是方法:

def check(lst):
    d = []
    for i,v in enumerate(lst):
        if v not in d or d[-1] == v:
            d.append(v)
        else:
            return [q for q in range(i,len(lst))]
print(check([1,1,0,0,1,1,0,0]))
[4, 5, 6, 7]
输出:

def check(lst):
    d = []
    for i,v in enumerate(lst):
        if v not in d or d[-1] == v:
            d.append(v)
        else:
            return [q for q in range(i,len(lst))]
print(check([1,1,0,0,1,1,0,0]))
[4, 5, 6, 7]

你说他们没有分组是什么意思?前四个值重复两次。如果第一次正确,为什么要返回列表中的最后四个位置?