def KOperator(stack, x, y, mode):
if mode == 1: # num, num
n = int(x)
k = int(y)
if k < 0 or k > n:
stack.append(0)
else:
stack.append(math.factorial(n)/(math.factorial(k)*math.factorial(n-k)))
#elif mode == 2: # num, str
elif mode == 3 or mode == 7: # num, list
n = int(x if mode == 3 else y)
l = y if mode == 3 else x
def subsets(l, n):
if n > len(l) or n < 0:
return []
elif n == len(l):
return [l]
elif n == 0:
return [[]]
elif n == 1:
return [[i] for i in l]
else:
result = []
for i in range(len(l)-n+1):
result += [[l[i]] + s for s in subsets(l[i+1:], n-1)]
return result
stack.append(subsets(l, n))
#elif mode == 4: # str, num
elif mode == 5: # str, str
stack.append(''.join(c for c in x if c in y))
#elif mode == 6: # str, list
#elif mode == 8: # list, str
elif mode == 9: # list, list
stack.append([i for i in x if i in y])
else:
dyadNotImplemented(mode, '')
# ?
评论列表
文章目录