可以在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个,以此类推。