簡體   English   中英

如何在Python中使用字符串作為列表的索引

[英]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這樣的標識符?

使用字典而不是列表:

if vlanid not in dict:
    dict[vlanid] = {}

PS:我建議您將dict稱為其他名稱,以免dict內置dict

不要將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM