Python - 从第n个元素开始打印分割线

时间:2018-04-25 01:17:34

标签: python list split line

我有一个字符串作为文件中line.split的结果。 如何将此字符串写入以第5个元素开头的另一个文件?

编辑: 我得到了这个并且它有效:

for line in data.readlines ()
if not line.startswith ("H"):
s = line.split ()
finaldata.write (" ".join (s [5:]))
finaldata.write ("\n")

唯一的问题是我的输入中有一些空的“单元格”,这会弄乱输出(将数据移到左侧,原始输入有空白)

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

回答原始问题:如果您按计数知道元素,则应切片。 string [5:]会将第5个字符打印到行尾。切片有一个非常基本的语法;假设你有一个字符串

a = "a b c d e f g h" 

你可以切片" a"来自这样的第5个角色

>>> a[5:] 
' d e f g h'

切片语法是[start:end:step]。所以[5:]从5开始,包括其余部分。这里有大量的例子Understanding Python's slice notation

第二个问题并不完全清楚你想要实现的目标......以下是一些使用内联注释的常见标准字符串操作示例

>>> a = "a b c d e f g h"
>>> a[5] # Access the 5th element of list using the string index
' '  
>>> a[5:] # Slice the string from the 5th element to the end
' d e f g h'  
>>> a[5::2] # Get every other character from the 5th element to the end
'     '
>>> a[6::2] # Get every other character from the 6th element to the end
'defgh'
# Use a list comprehension to remove all spaces from a string
>>> "".join([char for char in a if char != " "]) 
'abcdefgh'
# remove all spaces and print from the fifth character
>>> "".join([char for char in a if char != " "])[5:] 
'fgh'
>>> a.strip(" ") # Strip spaces from the beginning and end
'a b c d e f g h' 
>>> a[5:].strip(" ")  # slice and strip spaces from both sides
'd e f g h'
>>> a[5:].lstrip(" ")  # slice and use a left strip
'd e f g h'

编辑:添加其他用户的评论。如果你知道角色而不是位置,你就可以从中切割出来。但是,如果你有重复的字符,你必须要小心。

>>> a[a.index("e"):] # Slice from the index of character
'e f g h'
>>> b = "a e b c d e f g h e"
>>> b[b.index("e"):]
'e b c d e f g h e'