2014-09-03 113 views
-1

我想使用数组索引列表中的每个元素。例如,我想使用list[arr] = 1,其中arr是一个数组而不是list[ind] = 1,其中ind是一个数字索引。使用Dictionary数据结构可以完成这项工作,但创建字典非常耗时。有没有其他办法可以做到以上?Python中的数组索引列表

+0

创建字典比创建列表更加“耗时”吗? 另外,你是什么意思的“数组”? Python有列表和元组。你想用其中之一作为关键/索引吗? – 2014-09-03 13:38:36

+0

你不能。列表是使用整数索引的序列。 – chepner 2014-09-03 13:47:30

+0

你能更具体地了解“字典创作耗时”吗?创建'dict'比'list'需要更长的时间的部分原因是它提供了更灵活的索引。 – chepner 2014-09-03 13:48:48

回答

0

pythons列表实际上是一个可变长度的指针数组,而不是像最初想象的那样的链。因此,它们允许在O(1)中进行随机访问,就像您所描述的那样,而不需要地图所具有的哈希算法的成本。

如果您需要在C.使用你的运气了纯数组或需要将其提取到模块,并做

来源:Python documentation

0

您可以使用字典,元组为关键:

mappings = { (1,2,3,4): 5, (2,3,6,1): 9 } 
0

我是新来的蟒蛇。

数组在python中可能会很棘手。如在大多数情况下,该术语未被使用。可能是因为它是一个抽象的概念。几乎任何在Python中的东西都可以是一个数组。 我知道有4种基本类型的数组。字符串,列表,元组,字典。照这样说。以下简单的代码可以回答你的问题。

#! /usr/bin/env python 


animals = ('cat', 'dog', 'horse', 'lion') 

vehicle = ('car', 'truck', 'motorcycle') 

fish = ('bass', 'trout', 'carp') 


my_array = [ animals, vehicle, fish ] 


print my_array[0] 
print my_array[1] 
print my_array[2] 


>>> 
('cat', 'dog', 'horse', 'lion') 
('car', 'truck', 'motorcycle') 
('bass', 'trout', 'carp') 
>>>