在Python中,哪个数据结构更高效/更快? 假设顺序对我来说并不重要,无论如何我会检查重复项,Python集是否比Python列表慢?
我的问题如上所述。 例如, IEnumerable<T> items = new T[]{new T("msg")}; items.ToList().Add(new T("msg2")); 但毕竟它里面只有一件东西。 我们可以有一个方法像items.Add(item) ? 像List<T>
听起来很简单…但是我一直在堵塞,试图find一个和所有的解决scheme。 对于一个范围的数字,比如说1-12 ,我想在这个范围内生成一个随机序列, 并且包括1和12 。 我不想要重复的数字 。 所以我想要这样的 – 3,1,8,6,5,4 ..等等,每个数字从1-12。 然后,我想把这些随机数字放到一个Array并使用该数组在数据库中随机select和显示一些项目(如库存中的库存)。 到目前为止我所尝试过的问题是,有很多重复的数字被生成…或者,并不是所有的数字都被选中。 有没有简单的解决这个问题? 编辑 testing#1使用Collections和shuffle()方法 – ArrayList<Integer> list = new ArrayList<Integer>(10); for(int i = 0; i < 10; i++) { list.add(i); } Collections.shuffle(list); String[] randomNumbers = (String[])list.toArray(); for(int i = 0; i < 10; i++) { out.print(randomNumbers[i]+"<br>"); } 结果是一个重复值的序列 – select= 3 select= 8 […]
我目前正在Prolog的一个非常短的项目上工作,只是试图将我创build的“filter”应用到列表中。 我有你可以称之为filter准备好,但我不能应用它。 如果我说明会更好: filter(A, B) 如果满足某些条件,则输出“真”。 filterList(A, [X, Y, Z]) …输出一个列表,其中包含第二个参数中使得filter输出为false的所有元素。 (所以如果filter(A,X)为真,输出是[Y,Z])。 我已经准备好了“filter”函数,但是现在我需要将它应用到第二个示例所示的列表中,排除在应用第一个参数时filter返回true的所有元素。 因此,如果filter是一个简单的A == B,函数应该接收A [A,B,A,C,D,A]并输出[B,C,D]该filter适用,显然。 我在函数的基本结构上遇到了麻烦,所以如果任何人都可以为这样的函数提供一个基本的提纲,那将是非常有帮助的。 我尽可能地简化了我的情况,以便我可以根据需要提供和修改它。 提前致谢!
所以我有这个代码: tup = ([1,2,3],[7,8,9]) tup[0] += (4,5,6) 这会产生这个错误: TypeError: 'tuple' object does not support item assignment 虽然这个代码: tup = ([1,2,3],[7,8,9]) try: tup[0] += (4,5,6) except TypeError: print tup 打印这个: ([1, 2, 3, 4, 5, 6], [7, 8, 9]) 这是行为吗? 注意 我意识到这不是一个很常见的用例。 但是,虽然预期的错误,我没有想到列表的变化。
给出一个列表 l = [1,7,3,5] 我想迭代所有的连续列表项目对(1,7),(7,3),(3,5) ,即 for i in xrange(len(l)-1): x=l[i] y=l[i+1] # do something 我想以更紧凑的方式做到这一点,比如for (x,y) in someiterator(l): …有没有办法使用一些内置的python迭代器来做到这一点? 我相信itertools模块应该有一个解决scheme,但我无法弄清楚…
我想知道什么是最好的方式来提取列表中的每个子列表的第一个项目,并将其附加到一个新的列表。 所以,如果我有: lst = [[a,b,c], [1,2,3], [x,y,z]] 我想拉出一个,1和X,并创build一个单独的列表。 我试过了: lst2.append(x[0] for x in lst)
我如何使用一个Python列表(例如params = ['a',3.4,None] )作为函数的参数,例如: def some_func(a_char,a_float,a_something): # do stuff
我想做类似这样的事情: >>> x = [1,2,3,4,5,6,7,8,9,0] >>> x [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] >>> y = [1,3,5,7,9] >>> y [1, 3, 5, 7, 9] >>> y – x # (should return [2,4,6,8,0]) 但是这不是由python列表支持什么是做这件事的最好方法?
我已经看到实际上有两种(也许更多)的方式来连接Python中的列表:一种方法是使用extend()方法: a = [1, 2] b = [2, 3] b.extend(a) 另一个使用加号(+)运算符: b += a 现在我想知道:这两个选项中的哪一个是pythonic的列表连接的方式,两者是有区别的(我查了官方的Python教程,但是找不到关于这个主题的任何东西)。