我正在尝试理解MIT在线课程中的一些代码,这些代码使用rightshift按位运算符生成列表的所有唯一组合
# generate all combinations of N items
def powerSet(items):
N = len(items)
# enumerate the 2**N possible combinations
for i in range(2**N):
combo = []
for j in range(N):
# test bit jth of integer i
我有一个包含3个值的列表,其中两个是字符串。和另一个具有替换字符串的值的列表:
li = [1, 'a', 'b']
li2 = [2, 3, 4]
我所想的是,我可以用第二个列表替换字符串并调用它上的itertools.combinations():
li = [li2 if isinstance(x, str) else x for x in li]
li = [1, [2, 3, 4], [2, 3, 4]]
combo = list(itertools.combinations(li, 3)
但它只是给了我一个元组的相同名单回来。我想要的是像[1, 2,
这在某种程度上是我之前发布的一个问题()的后续,但有点不同。
假设我有以下代码:
var max = 80;
var list = new[]{10,20,30,40,50, 60);
我想生成一个包含所有可能组合的数组,我可以使用列表中的这些数字来获得最大值。
数组将包含,{40,40},{50,30},{40,30,10}等...
编辑:我看到了一篇关于在列表中加入括号的帖子。在这种情况下,我应该在哪里插入上述括号?抱歉,新手。
我有一个函数来生成任意给定数字范围的组合,但我需要打印出来或列出所有可能的组合。相反,我得到了这个:
<generator object combinations at 0x00000175A6796040>
源代码:
def combinations(iterable,r):
pool = tuple(iterable)
n = len(pool)
if r > n:
return
indices = list(range(r)
我们的数字是这些整数的和: 1,2,4
例如,列表中的3(2+1)、6(4+2)、5(1+4)、7(1+2+4)数字只能使用一次。它们不能重复。
现在我需要找到所有的数字,都是这样构造的,它们的和包括2。
以下是我为这个简短的列表所写的内容:
SELECT * FROM [TABLE] WHERE number = 2
OR number - 2 + 1 = 0
OR number - 2 + 1 + 4 = 0
OR number - 2 + 4 = 0
但是假设我们在列表1,2,4,8,16 ,72,128中有7个数字
所以这样写显然太长了,而且我没有想出一些算法:(
我希望问题是清楚
下面的简单代码给出了200个元素的长度3的可能组合。
from itertools import combinations
comb = combinations( range(200), 3 )
我想得到一个随机的组合,以便选择第一个N个组合。但是,如果我将梳子转换为列表并按以下方式对其进行洗牌,可能会出现内存错误,因为列表可能包含太多的元素:
comb = list(comb) # This might be huge and give a memory error
random.shuffle(comb)
N = 10
comb = comb[:10] # get only the f
我在一个用户表单中使用了一个列表框,该列表框显示了格式为百分比的列中的唯一值。我使用字典对象生成一个唯一的列表/值,并将其提供给一个列表框。
我的问题是,所有的值在列表框中都显示为十进制数字,而不是百分比。你知道如何将它们显示为百分比/格式吗?
仅供参考:列表框的值可以根据用户选择文本/数字/日期/货币/百分比进行更改
唯一列表代码
Sub UniqData(fString As String, cbNr As Integer) ' fString as string
Dim d As Object
With Sheets("xxx")
cNr = Worksheet
假设我有一副n张牌(例如50张),并从中抽出x张牌(例如5张)。我也有一些组合,是从组合两个或更多的卡片,并想知道他们中是否至少有一个在我的手中找到。
例如,假设我的甲板清单如下所示:
Card A x3
Card B x3
Card C x1
Card D x43
我有几个组合:
Combo 1
Card A + Card B
Combo 2
Card B + Card C
Combo 3
Card A + Card D + Card D
因此,一个可能被认为是成功的手是Card A, Card A, Card D, Card B, Card A,因为Combo 1就在这只手上。
我已经
好的,如果你有一个数字列表(任意大小),如下所示:
[5, 7] (It's short so i can type all the combinations)
我想要一个循环,返回一个组合列表,如下所示:
5+7
5-7
5*7
5/7
7+5
7-5
7*5
7/5
我已经考虑了一段时间了,我知道它是树形结构的,但我就是不知道如何让它适用于任何大小的列表。
我想找到以下所有可能的组合:
data = ['a','b','c','d']
我知道这看起来是一项简单的任务,可以通过如下代码来实现:
comb = [c for i in range(1, len(data)+1) for c in combinations(data, i)]
但是我想要的实际上是给列表数据中的每个元素两种可能性的方法('a'或'-a')。
组合的示例可以是['a','b']、['-a','b']、['a
我有一个号码清单:
nums = [-3,-2,-1,1,2,3,0,0]
我想迭代这个列表和add two numbers at a time,如果这两个数字的sum是列表中的一个元素(不包括我们刚刚加起来的两个元素),那么我想要remove the element。我该怎么做?
例如,since -3+2= -1和-1 is in the list,我可以从列表中删除-1。
我尝试创建一个空的list/set来存储每对元素的和,然后将num中的元素与这个list/set进行比较,但这是行不通的,因为它违反了我想做的第二部分-- in brackets above!
我想要remove as
进一步回答我的问题
我想在.Net 4.0中创建一个通用的扩展方法,它将生成列表项目占列表总和的百分比。此列表将仅为数值类型。
我的代码是
public static T Percentage<T>(this T array) where T: ? // What should come in place of ?
{
double[] darray = (double[])T; // Error convert type 'T' to 'double[]'
darray = darray.Select(x=> x * 100
给定一个列表l和列表元素的所有组合,是否可以在遍历所有组合时删除包含x的任何组合,以便在删除后的迭代过程中永远不会考虑包含x的组合?
for a, b in itertools.combinations(l, 2):
if some_function(a,b):
remove_any_tup_with_a_or_b(a, b)
我的列表l很大,所以我不想将这些组合保存在内存中。