标签: list

洗牌对象列表

我在Python中有一个对象列表,我想要将它们混洗.我以为我可以使用该random.shuffle方法,但当列表是对象时,这似乎失败了.是否有一种方法可以改变对象或其他方式?

import random

class A:
    foo = "bar"

a1 = a()
a2 = a()
b = [a1, a2]

print(random.shuffle(b))
Run Code Online (Sandbox Code Playgroud)

这将失败.

python random shuffle list

723
推荐指数
12
解决办法
90万
查看次数

如何在保留订单的同时从列表中删除重复项?

是否有内置功能可以从Python中的列表中删除重复项,同时保留顺序?我知道我可以使用一个集来删除重复项,但这会破坏原始顺序.我也知道我可以像这样滚动自己:

def uniq(input):
  output = []
  for x in input:
    if x not in output:
      output.append(x)
  return output
Run Code Online (Sandbox Code Playgroud)

(感谢您放松代码示例.)

但是如果可能的话,我想利用内置或更多的Pythonic习语.

相关问题:在Python中,从列表中删除重复项的最快算法是什么,以便所有元素在保留顺序的同时是唯一的?

python list unique duplicates

722
推荐指数
12
解决办法
52万
查看次数

如何从列表中删除第一个项目?

我有[0, 1, 2, 3, 4]我想要的列表[1, 2, 3, 4].我该怎么做?

python arrays list

721
推荐指数
11
解决办法
87万
查看次数

712
推荐指数
3
解决办法
225万
查看次数

如何在Java中创建一个新的List

我们创建一个Set:

Set myset = new HashSet()
Run Code Online (Sandbox Code Playgroud)

我们如何List在Java中创建?

java collections list

710
推荐指数
22
解决办法
183万
查看次数

如何在Java中加入两个列表?

条件:不修改原始列表; 仅限JDK,没有外部库.单行或JDK 1.3版本的奖励积分.

有没有比以下更简单的方法:

List<String> newList = new ArrayList<String>();
newList.addAll(listOne);
newList.addAll(listTwo);
Run Code Online (Sandbox Code Playgroud)

java list jdk1.5

694
推荐指数
22
解决办法
76万
查看次数

为什么[]比list()更快?

我最近比较了处理速度[]和,list()并且惊讶地发现它的[]运行速度比它三倍list().我跑了相同的测试与{}dict(),结果几乎相同:[]{}两个花了大约0.128sec /百万次,而list()dict()大约花费每个0.428sec /万次.

为什么是这样?不要[]{}(可能()'',太)立即传回文字的一些空股票的份,而其明确命名同行(list(),dict(),tuple(),str())完全去创建一个对象,他们是否真的有元素?

我不知道这两种方法有何不同,但我很想知道.我无法在文档中或在SO上找到答案,搜索空括号结果比我预期的问题更多.

我拨打了我的时序结果timeit.timeit("[]")timeit.timeit("list()"),和timeit.timeit("{}")timeit.timeit("dict()"),分别比较列表和字典.我正在运行Python 2.7.9.

我最近发现的" 为什么是,如果真慢于如果为1? "来比较的性能if Trueif 1,似乎触及了类似的文字,对全局的情况; 也许值得考虑一下.

python performance list instantiation literals

679
推荐指数
5
解决办法
7万
查看次数

如何在Python中将字典键作为列表返回?

Python 2.7中,我可以将字典,项目作为列表获取:

>>> newdict = {1:0, 2:0, 3:0}
>>> newdict.keys()
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

现在,在Python> = 3.3中,我得到这样的东西:

>>> newdict.keys()
dict_keys([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

所以,我必须这样做以获得一个列表:

newlist = list()
for i in newdict.keys():
    newlist.append(i)
Run Code Online (Sandbox Code Playgroud)

我想知道,有没有更好的方法来返回Python 3中的列表?

python dictionary list python-2.x python-3.x

656
推荐指数
10
解决办法
101万
查看次数

如何在Java中将Map转换为List?

将a转换Map<key,value>为a 的最佳方法是List<value>什么?只是迭代所有值并将它们插入列表中或者我忽略了什么?

java collections list map

643
推荐指数
10
解决办法
68万
查看次数

IEnumerable vs List - 使用什么?他们是如何工作的?

我对枚举器如何工作以及LINQ有些怀疑.考虑这两个简单的选择:

List<Animal> sel = (from animal in Animals 
                    join race in Species
                    on animal.SpeciesKey equals race.SpeciesKey
                    select animal).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

要么

IEnumerable<Animal> sel = (from animal in Animals 
                           join race in Species
                           on animal.SpeciesKey equals race.SpeciesKey
                           select animal).Distinct();
Run Code Online (Sandbox Code Playgroud)

我更改了原始对象的名称,因此这看起来像一个更通用的示例.查询本身并不重要.我想问的是:

foreach (Animal animal in sel) { /*do stuff*/ }
Run Code Online (Sandbox Code Playgroud)
  1. 我注意到,如果我使用IEnumerable,当我调试并检查"sel"时,在这种情况下是IEnumerable,它有一些有趣的成员:"inner","outer","innerKeySelector"和"outerKeySelector",这些最后2个出现成为代表."内部"成员中没有"Animal"实例,而是"Species"实例,这对我来说非常奇怪."外部"成员确实包含"Animal"实例.我假设两位代表确定哪些进入,哪些进出?

  2. 我注意到如果我使用"Distinct","inner"包含6个项目(这是不正确的,因为只有2个是Distinct),但"outer"确实包含正确的值.同样,委托方法可能决定了这一点,但这比我对IEnumerable的了解要多一些.

  3. 最重要的是,两种选择中的哪一种是性能最佳的?

邪恶的名单转换通过.ToList()

或者直接使用枚举器?

如果可以,请解释一下或抛出一些解释IEnumerable使用的链接.

c# linq ienumerable list

634
推荐指数
10
解决办法
42万
查看次数