通过从给定的元组中删除元素来获取所有元组的快速、python方法?

通过从给定的元组中删除元素来获取所有元组的快速、python方法?,python,generator,Python,Generator,给定一个包含所有不同整数的元组T,我想得到从T中删除单个整数所得到的所有元组。我得到了以下代码: def滴管: S=setT 对于S中的i: 产生元组。差异{i} 对于下降1,2,3中的t: 普林特 2,3 1,3 1,2 我对此并不不满,但我想知道是否有更好/更快的方法,因为对于大元组,差异需要在集合中查找项,但我已经知道我将按顺序删除项。但是,此代码只快2倍: def滴管: 对于我在兰格伦: 收益率T[:i]+T[i+1:] 在任何情况下,两者都不会随着T的大小而线性扩展。而不是将其视为删除

给定一个包含所有不同整数的元组T,我想得到从T中删除单个整数所得到的所有元组。我得到了以下代码:

def滴管: S=setT 对于S中的i: 产生元组。差异{i} 对于下降1,2,3中的t: 普林特 2,3 1,3 1,2 我对此并不不满,但我想知道是否有更好/更快的方法,因为对于大元组,差异需要在集合中查找项,但我已经知道我将按顺序删除项。但是,此代码只快2倍:

def滴管: 对于我在兰格伦: 收益率T[:i]+T[i+1:]
在任何情况下,两者都不会随着T的大小而线性扩展。

而不是将其视为删除一个项目。每个项目都可以将其视为使用除一之外的所有项目,然后使用它变得简单:

从itertools导入组合 T=1,2,3,4 对于组合ST中的t,lenT-1: 普林特 其中:

1, 2, 3 1, 2, 4 1, 3, 4 2, 3, 4
*假设顺序并不重要,而不是将其视为删除一个项目,每个项目都可以将其视为使用除一之外的所有项目,然后使用它变得简单:

从itertools导入组合 T=1,2,3,4 对于组合ST中的t,lenT-1: 普林特 其中:

1, 2, 3 1, 2, 4 1, 3, 4 2, 3, 4
*假设从您的描述来看顺序并不重要,您正在寻找t元素的组合。使用itertools.combines,您可以按排序顺序要求所有r长度元组,而不需要重复元素。例如:

import itertools
T = [1,2,3]
for i in  itertools.combinations(T, len(T) - 1):
   print(i)

根据您的描述,您正在寻找T元素的组合。使用itertools.combines,您可以按排序顺序要求所有r长度元组,而不需要重复元素。例如:

import itertools
T = [1,2,3]
for i in  itertools.combinations(T, len(T) - 1):
   print(i)

你能说明你在找什么吗?没有任何算法会随着T in On的大小线性扩展,因为您希望在大小为On的元组上进行构造。您能澄清一下您在寻找什么吗?没有任何算法会随着T in On的大小线性扩展,因为您希望在大小为On的元组上构造。当然!:脸掌:当然facepalm: