Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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_Slice - Fatal编程技术网

可以在python中增加一个切片吗?

可以在python中增加一个切片吗?,python,slice,Python,Slice,我有以下代码: def getresult (someset): result = [] index = 0 for key, value in mydict.items(): if someset.issubset(value): result.append(key) while (len(result)<10): index = index+1 someset = someset[i

我有以下代码:

def getresult (someset):
    result = []
    index = 0
    for key, value in mydict.items():
        if someset.issubset(value):
            result.append(key)
    while (len(result)<10):
        index = index+1
        someset = someset[index:]
        getresult(someset)
    return result
def getresult(someset):
结果=[]
索引=0
对于键,mydict.items()中的值:
如果someset.issubset(值):
result.append(键)

虽然(len(result)在阅读了所有人的评论之后,我意识到有一种更简单的方法可以得到我想要的结果

对于子孙后代来说,这就是:

for key, value in mydict.items():
    for i in someset:
        if i in value:
            mylist.append(key)
然后,我可以简单地使用计数器从我的列表中创建一个频率字典,并创建一个具有最高值的键列表:

tmpdict = Counter(mylist)
finallist = [i for (i,j) in tmpdict.items() if j >= 2]
#if j >=2, then k originally had more than 2 elements of someset as a value

该错误意味着您无法对集合进行切片。它们是无序的,因此切片不是确定性的。您可以使用someset.pop()代替切片方法从集合中删除任意元素。我将查看以下答案:从集合中生成组合的幂集,并检查是否每个组合都在列表中。此外,循环中没有break语句,如果结果的大小小于10@Ben我已经看过你链接的答案,但我不确定我需要一个powerset,因为我不确定它是否会以正确的顺序迭代。如果集合中最初有5个元素,我想从中选择4个,然后选择3个,然后选择2个,以此类推。