我有以下清單:
fields = ['angDist','angDist','_RAJ2000','_DEJ2000','NVSS','RAJ2000',
'DEJ2000','e_RAJ2000','e_DEJ2000','S1.4','e_S1.4','l_MajAxis',
'MajAxis','l_MinAxis','MinAxis','f_resFlux','_RAJ2000',
'_DEJ2000','GLEAM','RAJ2000','DEJ2000','Fpwide','Fintwide',
'eabsFpct','efitFpct','Fp076','Fint076','Fp084','Fint084',
'Fp092','Fint092','Fp099','Fint099','Fp107','Fint107','Fp115',
'Fint115','Fp122','Fint122','Fp130','Fint130','Fp143',
'Fint143','Fp151','Fint151','Fp158','Fint158','Fp166',
'Fint166','Fp174','Fint174','Fp181','Fint181','Fp189',
'Fint189','Fp197','Fint197','Fp204','Fint204','Fp212',
'Fint212','Fp220','Fint220','Fp227','Fint227','alpha',
'Fintfit200','RAdeg','DEdeg','errHalfMaj','errHalfMin',
'errPosAng','objID','mode','q_mode','class','SDSS12',
'm_SDSS12','flags','ObsDate','Q','umag','e_umag','gmag',
'e_gmag','rmag','e_rmag','imag','e_imag','zmag','e_zmag','zsp',
'e_zsp','f_zsp','zph','e_zph','avg_zph','pmRA','e_pmRA','pmDE',
'e_pmDE','SpObjID','spType','spCl','subClass'
]
我需要提取以 開頭Fp或結尾的字串串列mag,但不以e_.
我試過串列理解:
magnames1 = [mag for mag in fields if mag.startswith('Fp')]
magnames2 = [mag for mag in fields if (mag.endswith('mag') && !(mag.startswith"e_"))]
magnames = magnames1 magnames2
但magnames2給了我一個語法錯誤。無需將字串硬編碼到另一個串列中,最簡單的方法是什么?
uj5u.com熱心網友回復:
你想要and代替&&和not代替!:
magnames1 = [mag for mag in fields if mag.startswith('Fp')]
magnames2 = [mag for mag in fields if (mag.endswith('mag') and not mag.startswith("e_"))]
magnames = magnames1 magnames2
uj5u.com熱心網友回復:
如果您使用關鍵字not而不是!并且使用單個&而不是 ,它應該可以作業&&。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373306.html
