[问题] 多个串行资料索引问题

楼主: 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