Python中的并行列表是什么意思

时间:2011-04-05 22:07:12

标签: python

我刚刚开始使用python,我无法弄清楚并行列表的含义 任何信息都会很棒。我认为它只是使用两个列表来存储信息

5 个答案:

答案 0 :(得分:4)

“并列列表”是术语“parallel array”的变体。我们的想法是,不是拥有单个数组/列表/记录集合(具有属性的对象,在Python术语中),而是为概念记录的每个字段提供单独的数组/列表/集合。

例如,您可以拥有姓名,年龄和职业的人员记录:

people = [
    Person(name='Bob', age=38, occupation=PROFESSIONAL_WEASEL_TRAINER),
    Person(name='Douglas', age=42, occupation=WRITER),
    # etc.
]

或者你可以为每个属性提供“并行列表”:

names = ['Bob', 'Douglas', ...]
ages = [38, 42, ...]
occupations = [PROFESSIONAL_WEASEL_TRAINER, WRITER, ...]

这两种方法都存储相同的信息,但根据您正在做的事情,处理比另一种更有效。如果您想要对给定集合进行“注释”而不实际修改原始集合,那么使用并行集合也很方便。

(并行数组在不支持正确记录但支持数组的语言中也很常见,就像许多版本的8位机器的BASIC一样。)

答案 1 :(得分:0)

术语“并行列表”不存在。也许你在谈论并行迭代两个列表。然后它意味着你在同一时间迭代它们。有关详情,请阅读“how can I iterate through two lists in parallel in Python?”。

答案 2 :(得分:0)

如果您尝试迭代两个或多个列表中的相应项目,请参阅itertools.izip(如果您使用的是Python 3,则只需使用内置zip。)

答案 3 :(得分:0)

我唯一一次看到这个术语的使用就是我使用Haskell的时候。见这里:

http://www.haskell.org/ghc/docs/5.00/set/parallel-list-comprehensions.html

基本上python等价物是:

[(x,y) for x in range(1,3) for y in range(1,3)]

但是,您可以使用zip / izip进行此操作。

答案 4 :(得分:0)

它有时指的是两个元素相对应的列表。 See this SO question