关于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?
最新回答
山河霜白

2024-11-08 01:40:36


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时的输出。

参考资料:

百度百科-Python(计算机程序设计语言)


找小黑把校园炸了O∩_∩O

2024-11-08 00:05:14

>>> line = "abcde"
>>> line[:-1]
'abcd'
>>>

line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。

出ValueError是因为你line[:-1].split(':')[:7]这里取了分割后列表的前七个值,但是把他付给了九个变量。个数不匹配。
但许星辰月

2024-11-08 00:37:42

去掉这行末尾的换行符
匿名的关系

2024-11-08 01:17:59

1