Python:在循环中创建关联数组

10 投票
3 回答
33888 浏览
提问于 2025-04-16 05:53

我想创建一个关联数组,里面的值是从一个文件中读取的。我的代码大概是这样的,但它给我报错,说我不能这样做,因为索引必须是整数。

谢谢 =]

for line in open(file):
  x=prog.match(line)
  myarray[x.group(1)]=[x.group(2)]

3 个回答

1

因为数组的索引应该是整数

>>> a = [1,2,3]
>>> a['r'] = 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> a[1] = 4
>>> a
[1, 4, 3]

x.group(1) 应该是一个整数,或者

如果你在使用映射,先定义好映射

myarray = {}
for line in open(file):
  x=prog.match(line)
  myarray[x.group(1)]=[x.group(2)]
5

在Python中,关联数组被称为映射。最常见的类型是字典

17
myarray = {} # Declares myarray as a dict
for line in open(file, 'r'):
    x = prog.match(line)
    myarray[x.group(1)] = [x.group(2)] # Adds a key-value pair to the dict

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的方式解释清楚。

撰写回答