如何在Python中使用字符串作为列表的索引
for line in f.readlines():
(addr, vlanid, videoid, reqs, area) = line.split()
if vlanid not in dict:
dict[vlanid] = []
video_dict = dict[vlanid]
if videoid not in video_dict:
video_dict[videoid] = []
video_dict[videoid].append((addr, vlanid, videoid, reqs, area))
这是我的代码,我想用视频的ID作为索引来创建一个列表。视频ID的真实数据是一些不同的字符串,比如:FYFSYJDHSJ
我收到了这个错误信息:
video_dict[videoid] = []
TypeError: list indices must be integers, not str
那么现在我该如何为这些不同的字符串添加像1、2、3、4这样的标识呢?
3 个回答
0
如上所述,创建字典是实现代码的最佳选择。(不过,最好不要把它们叫做 dict
,因为这个词在Python中有特别的含义。)
你的代码可能看起来像 @aix 之前发的那样:
for line in f.readlines():
d = dict(zip(("addr", "vlanid", "videoid", "reqs", "area"), tuple(line.split())))
你可以在代码的后面使用字典 d
来做一些事情。记住一点——如果你在循环结束后才使用这个字典 d
,那么你只能得到文件中的最后一个值。
4
2
不要把 dict
当作变量名来用。可以试试用 d
来代替 dict
:
d = {}
for line in f.readlines():
(addr, vlanid, videoid, reqs, area) = line.split()
video_dict = d.setdefault(vlanid, {})
video_dict.setdefault(videoid, []).append((addr, vlanid, videoid, reqs, area))