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

作者: lattes (拿鐵三合一)   2018-01-03 16:48:51
各位好 小弟是個超級新手 對於很多函式邏輯概念都十分不足
最近在練習一些研究上有幫助的程式撰寫
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"
作者: AlaRduTP (Eden)   2018-01-03 17:48:00
因為你寫的是 str().index() 不是 list().index()意思是 "FID0" 終究是個字串物件,就算這個字串的內容和list 的名稱一樣,它們還是不同的東西。
作者: lattes (拿鐵三合一)   2018-01-04 08:37:00
請問A大有什麼建議的修改方式嗎 有沒有方法能夠將字串轉換為LIST名稱QQ 或是有其他的索引方式能夠一次索引全部資料
作者: tedwu2001   2018-01-04 13:13:00
用dictionary存
作者: lattes (拿鐵三合一)   2018-01-04 13:53:00
請問tedwu指的是 dict={"FID0":[""],"FID1":[""]}這樣嗎~
作者: tedwu2001   2018-01-04 14:54:00
精神上是,key不太確定你到底有沒有需要FIDX就自行調整
作者: lattes (拿鐵三合一)   2018-01-04 15:04:00
tedwu大 可以請教一下這樣建立後 應該用什麼方式索引嗎
作者: tedwu2001   2018-01-04 15:23:00
ref: http://bit.ly/2Cooaw5應該可以瞭解要調整key的原因
作者: lattes (拿鐵三合一)   2018-01-04 15:39:00
萬分感謝tedwu大大 目前我對於函式的了解還無法寫出這樣的東西,我會再研究一下t大給我的資訊做修改也感謝A大提醒我字串跟list名稱本質是不相同的問題
作者: AlaRduTP (Eden)   2018-01-04 18:58:00
如果不想動原來的那些 list,也可以再開一個 list ,裡面放 FID0, FID1, ..., FID5 (要注意的是,不是放 "FID0",因為要的是 list 而非 str),再用 for 迭代。
作者: ddchris (克里斯)   2018-01-04 22:50:00
http://codepad.org/AZhCL5aI 把名稱放進串列寫成函數直接呼叫並傳入要搜尋的字串,不知是不是符合你的需求?

Links booklink

Contact Us: admin [ a t ] ucptt.com