Python的新手,我现在正在学习编写一个程序来处理来自多个文本文件的前几行的数据。到目前为止一直很好 - 获取数据并重新格式化输出。
现在我想根据它在csv文件中的行来更改一个输出字段的格式。该文件是15行,列数可变。
这个想法是:
示例数据:
BIT, BITSIZE, BITM, BS11, BIT, BS4, BIT1, BIT_STM
CAL, ID27, CALP, HCALI, IECY, CLLO, RD2, RAD3QI, ID4
DEN, RHO8[1], RHOZ1, RHOZ2, RHOB_HR, RHOB_ME, LDENX
DENC, CRHO, DRHO1, ZCOR2, HDRH2, ZCORQK
DEPT, DEPTH, DEPT,MD
DPL, PDL, PORZLS1, PORDLSH_Y, DPRL, HDPH_LIM, PZLS
DPS, HDPH_SAN1, DPHI_SAN2, DPUS, DPOR, PZSS1
DTC, DTCO_MFM[1], DT4PT2, DTCO_MUM[1], DTC
DTS, DT1R[1], DTSH, DT22, DTSM[1], DT24S
GR, GCGR, GR_R3, HGR3, GR5, GR6, GR_R1, MGSGR
NPL, NEU, NPOR_LIM, HTNP_LIM, NPOR, HNPO_LIM1
NPS, NPRS, CNC, NPHILS, NPOR_SS, NPRS1, CNCS, PORS
PE, PEFZ_2, HPEF, PEQK, PEF81, PEF83, PEDN, PEF8MBT
RD, AST90, ASF60, RD, RLLD, RTCH, LLDC, M2R9, LLHD
RS, IESN, FOC, ASO10, MSFR, AO20, RS, SFE, LL8, MLL
例如:
BIT, BITSIZE, BITM, BS11, BIT, BS4, BIT1, BIT_STM
返回BIT
问题:
我尝试加载到列表并搜索:
import csv
with open('lookup.csv', 'rb') as f:
reader = csv.reader(f)
codelist = list(reader)
这是否适用于搜索匹配代码searchcode
?
for subcodes in codelist:
if searchcode in subcodes:
print "Found it!", subcodes[0]
break
答案 0 :(得分:0)
我认为你应该尝试使用二维字典
new_dic = {}
new_dic[0] = {BIT, BITSIZE, BITM, BS11, BIT, BS4, BIT1, BIT_STM}
new_dic[1] = {CAL, ID27, CALP, HCALI, IECY, CLLO, RD2, RAD3QI, ID4}
然后你可以搜索元素并打印出来。
答案 1 :(得分:0)
您可以使用“index”搜索列表中的项目。如果列表中有该项,它将返回第一次出现的位置。
my_list = ['a','b','c','d','e','c'] # defines the list
copy_at = my_list.index('b') # checks if 'b' is in the list
copy_at # prints the location in the list where 'b' was at
1
copy_at = my_list.index('c')
copy_at
2
copy_at = my_list.index('f')
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
my_list.index('f')
ValueError: 'f' is not in list
你可以通过“尝试”“除外”来捕捉错误并继续搜索。