[英]how to use string as list's indices in 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))
這是我的代碼,我想使用videoid作為索引來創建列表。 videoid的實際數據是這樣的不同字符串: FYFSYJDHSJ
我收到此錯誤消息:
video_dict[videoid] = []
TypeError: list indices must be integers, not str
但是現在如何在這種情況下為不同的字符串添加像1,2,3,4這樣的標識符?
不要將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))
如上所述,創建字典將是最理想的實現代碼。 (盡管您應避免將它們稱為dict
,因為這對Python來說很重要。
您的代碼可能類似於@aix上面已經發布的內容:
for line in f.readlines():
d = dict(zip(("addr", "vlanid", "videoid", "reqs", "area"), tuple(line.split())))
您稍后將可以在代碼中使用字典d
進行某些操作。 請記住-遍歷此字典意味着,如果直到循環完成后才使用d
,則只能從文件中獲取最后一個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.