Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要在python中使用字符串索引的帮助吗_Python_Indexing - Fatal编程技术网

需要在python中使用字符串索引的帮助吗

需要在python中使用字符串索引的帮助吗,python,indexing,Python,Indexing,当我尝试使用索引获取行的最后一个元素时,它不起作用(打印出一个空行)。但是,当我打印原始行时,它可以工作 with open( newFile,"w") as f: f.write("Model Number One" + "\n") for l in lines: if "ATOM" in l : f.write(l[-1]) #Does NOT wor

当我尝试使用索引获取行的最后一个元素时,它不起作用(打印出一个空行)。但是,当我打印原始行时,它可以工作

with open( newFile,"w") as f: 

    f.write("Model Number One" + "\n")
    for l in lines:
        if "ATOM" in l : 
            f.write(l[-1]) #Does NOT work, prints empty line
            f.write(l) # Prints the whole linem when I only want the last element of the line

原因可能是该行末尾有一个新行字符。如果行的最后一个元素是“\n”,因为文件有多行,那么它肯定会打印一个空行。

正如Kengru提到的,末尾可能有一个新行。要测试,请尝试使用f.write(l[-2])而不是f.write(l[-1])。

每一行都是一个字符串,因此每个索引都是单个字符,最后一个是换行符(
'\n'
)。如果要从该行中删除以空格分隔的子字符串,请使用
strip
删除换行符,并使用
split
在空格上拆分生成的字符串:

with open( newFile, "w") as f: 
    f.write("Model Number One" + "\n")
    for l in lines:
        elems = l.strip().split()
        if "ATOM" in elems: 
            f.write(elems[-1] + "\n")

什么是
?这是字符串列表还是字符串列表?这是字符串列表!如果
是字符串列表,则
中的每个
l
都是字符串,每个索引都是单个字符。要将其拆分为所需的以空格分隔的单词列表,
split()
。我想可能是这样,所以我尝试了f.write[-2]、f.write[-3]等,但它打印了从0到9的数字。我知道这是错误的,因为最后一列从1开始到41结束。我想可能是这样,所以我尝试了f.write[-2],f.write[-3]等等,但它打印了从0到9的数字。我知道这是错误的,因为最后一列从1开始,到41结束。如果可能的话,复制粘贴您试图读取的文件的最后一行。