关于python代码,line[:-1]的意思
for srcFileName in srcFileNameList:
csfile = open(srcFileName)
while 1:
line = csfile.readline()
if line.startswith('#'): continue
if not line:
print 'Check...'+srcFileName
raise SystemExit
try:
setname,zinc,pmf,dock,gold,chemscore,ad,unbd,dfire = line[:-1].split(':')[:7]
except ValueError:
print 'Check......'+srcFileName
sys.exit()
break
csfile.close()
其中line[:-1]的意思是什么?
为什么我总是会ValueError? 展开
line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。
line = "abcde"
line[:-1]
结果为:'abcd'
line = "abcde"
line[::-1]
结果为:'edcba'
扩展资料:
1.先定义一个array数据
1 import numpy as np2 x=np.array([1,4,3,-1,6,9])
2.现在我们可以看看argsort()函数的具体功能是什么:
x.argsort()
输出定义为y=array([3,0,2,1,4,5])。
我们发现argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。例如:x[3]=-1最小,所以y[0]=3,x[5]=9最大,所以y[5]=5。
3.由于在程序中遇到了类似于np.argsort()[num]的形式,一直看不明白,就自己去python环境自己试了下:
ps:这里的num的绝对值小于等于x中元素的个数
当num>=0时,np.argsort()[num]就可以理解为y[num];
当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index,np.argsort()[-2]即输出x中第二大值对应的index,依此类推。
这是当num为负值时的输出。
这个是num>=0时的输出。
参考资料:
>>> line[:-1]
'abcd'
>>>
line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。
出ValueError是因为你line[:-1].split(':')[:7]这里取了分割后列表的前七个值,但是把他付给了九个变量。个数不匹配。