我正在和一个有许多列(超过1000列)的HDUList一起工作。这些列与星系团中由外部代码拟合的星系特征有关。列应以“ser”或“dev”结尾。但是,有些列太长,名称被截断(例如:LOGRE\u F3mF2\u F850LPse或eLOGRE\u F3mF2\u F850LPs)
我正在定义函数来对数据执行各种操作。我很难系统地选择我想要的列,因为名称都不一样。你知道吗
现行程序(与问题有关的部分):
def function(xaxisroot,yaxisroot,otheroptions):
xaxis = xaxisroot + '_avg_f850lpser'
yaxis = yaxisroot + '_F' + str(region[0]) + 'mF' + str(region[1]) + '_f850lpser'
function('logre','logre')
因为该列实际上是:“LOGRE\u avg\u F850LPse” 我得到错误(示例):
KeyError: "Key 'logre_avg_f850lpser' does not exist."
看起来名字的长度是20个字符。如果是这样的话,你可以尝试以下方法:
这确保了
key
总是小于或等于20个字符,并在字符串的右端进行修剪(因为截断似乎发生在右端)。你知道吗如果20个字符不是截断(总是)发生的位置,则需要显示更多截断列键的示例。你知道吗
尝试使用
hasattr(object,property)
检测密钥是否确实存在。否则,试着重组你的字典,这样你就不会有这样奇怪的名字。你知道吗相关问题 更多 >
编程相关推荐