[問題] 多個串列資料索引問題

看板Python作者 (逢甲路黑天鵝)時間8年前 (2018/01/03 16:48), 編輯推噓1(1019)
留言20則, 4人參與, 8年前最新討論串1/1
各位好 小弟是個超級新手 對於很多函式邏輯概念都十分不足 最近在練習一些研究上有幫助的程式撰寫 FID0=["A6713-0044-00", "A6713-03-004", "A6713-03", "67000130", "67000"] FID1=["A6706-0169-00", "A6706-10-004", "A6706-10", "67000060", "67000"] FID2=["A6704-0124-00", "A6704-07-007", "A6704-07", "67000040", "67000"] FID3=["A6701-0425-00", "A6701-27-006", "A6701-27", "67000010", "67000"] FID4=["A6706-0182-00", "A6706-10-005", "A6706-10", "67000060", "67000"] FID5=["A6702-0221-00", "A6702-11-003", "A6702-11", "67000020", "67000"] 我的資料中有多個list 想做的部分為輸入一個值 在多個串列中索引 並回傳其list名稱與位置(index) k="A6702-0221-00" for i in range(6): str("FID"+str(i)).index(k) print ((str("FID"+str(i))).index(k)) 目前嘗試用迴圈創造list名稱並放入index中 但不知是語法錯誤還是我概念不正確 得到ValueError: substring not found 資料無法索引到的訊息 先在此感謝各位大神的回答 並請鞭小力些 小弟虛心求教 另外想詢問若匯入的資料為更多筆數 該如何自動取得總筆數並做出相對應的索引 或是有更好的索引方式能夠使用 補充: 需要得到索引位置是因為後續想要能回傳下一個位置的值 例:輸入"A6706-0182-00" 得到"A6706-10-005" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.29.192.212 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1514969333.A.CC6.html

01/03 17:48, 8年前 , 1F
因為你寫的是 str().index() 不是 list().index()
01/03 17:48, 1F

01/03 17:52, 8年前 , 2F
意思是 "FID0" 終究是個字串物件,就算這個字串的內容和
01/03 17:52, 2F

01/03 17:52, 8年前 , 3F
list 的名稱一樣,它們還是不同的東西。
01/03 17:52, 3F

01/04 08:37, 8年前 , 4F
請問A大有什麼建議的修改方式嗎 有沒有方法能夠將字串
01/04 08:37, 4F

01/04 08:38, 8年前 , 5F
轉換為LIST名稱QQ 或是有其他的索引方式能夠一次索引全部
01/04 08:38, 5F

01/04 08:38, 8年前 , 6F
資料
01/04 08:38, 6F

01/04 13:13, 8年前 , 7F
用dictionary存
01/04 13:13, 7F

01/04 13:53, 8年前 , 8F
請問tedwu指的是 dict={"FID0":[""],"FID1":[""]}這樣嗎~
01/04 13:53, 8F

01/04 14:54, 8年前 , 9F
精神上是,key不太確定你到底有沒有需要FIDX就自行調整
01/04 14:54, 9F

01/04 15:04, 8年前 , 10F
tedwu大 可以請教一下這樣建立後 應該用什麼方式索引嗎
01/04 15:04, 10F

01/04 15:23, 8年前 , 11F
01/04 15:23, 11F

01/04 15:26, 8年前 , 12F
應該可以瞭解要調整key的原因
01/04 15:26, 12F

01/04 15:39, 8年前 , 13F
萬分感謝tedwu大大 目前我對於函式的了解還無法寫出這樣的
01/04 15:39, 13F

01/04 15:40, 8年前 , 14F
東西,我會再研究一下t大給我的資訊做修改
01/04 15:40, 14F

01/04 15:41, 8年前 , 15F
也感謝A大提醒我字串跟list名稱本質是不相同的問題
01/04 15:41, 15F

01/04 18:58, 8年前 , 16F
如果不想動原來的那些 list,也可以再開一個 list ,裡
01/04 18:58, 16F

01/04 18:58, 8年前 , 17F
面放 FID0, FID1, ..., FID5 (要注意的是,不是放 "FID0
01/04 18:58, 17F

01/04 18:58, 8年前 , 18F
",因為要的是 list 而非 str),再用 for 迭代。
01/04 18:58, 18F

01/04 22:50, 8年前 , 19F
http://codepad.org/AZhCL5aI 把名稱放進串列寫成函數
01/04 22:50, 19F

01/04 22:51, 8年前 , 20F
直接呼叫並傳入要搜尋的字串,不知是不是符合你的需求?
01/04 22:51, 20F
文章代碼(AID): #1QJ9Zrp6 (Python)