Python:从对象中删除特定行

时间:2012-03-16 14:48:21

标签: python

我在这里有一个奇怪的问题。

我正在使用iperf来测试设备和服务器之间的性能。我通过SSH获得了此测试的结果,然后我想使用已经创建的解析器解析为值。但是,在结果的顶部有几行(我读入行的对象),我不想进入解析器。我知道每次我需要从顶部删除多少行。有没有办法从列表中删除特定条目?在psuedo-python

中有类似的东西
print list
["line1","line2","line3","line4"]
list = list.drop([0 - 1])
print list
["line3","line4"]

如果有人知道我可以使用的任何东西我真的很感谢你帮助我。我唯一能想到的就是编写一个循环来迭代并创建一个新的列表,只是放入我需要的东西。无论如何,不​​要超过!

迈克尔

6 个答案:

答案 0 :(得分:1)

这是slice运算符的用途:

>>> before = [1,2,3,4]
>>> after = before[2:]
>>> print after
[3, 4]

在这种情况下,before[2:]说'给我列表before的元素,从元素2开始,一直到结束。'

(另外 - 不要使用listdict之类的保留字作为变量名 - 这样做会导致混乱的错误)

答案 1 :(得分:1)

您可以使用slices

>>> l = ["line1","line2","line3","line4"] # don't use "list" as variable name, it's a built-in.
>>> print l[2:] # to discard items up to some point, specify a starting index and no stop point.
['line3', 'line4']
>>> print l[:1] + l[3:] # to drop items "in the middle", join two slices.
['line1', 'line4']

答案 2 :(得分:1)

切片:

l = ["line1","line2","line3","line4"]
print l[2:] # print from 2nd element (including) onwards 
["line3","line4"]

切片语法为[from(included):to(excluded):step]。每个部分都是可选的。因此,您可以编写[:]来获取整个列表(或任何可迭代的内容 - stringtuple作为内置插件的示例)。您也可以使用负索引,因此[:-2]表示从开头到倒数第二个元素。您也可以倒退,[::-1]表示全部,但顺序相反。

此外,请勿使用list作为变量名称。它会覆盖内置列表类。

答案 3 :(得分:1)

为什么不使用基本列表切片?类似的东西:

list = list[3:] #everything from the 3 position to the end

答案 4 :(得分:1)

你想要del那个

del list[:2]

答案 5 :(得分:1)

您可以使用“ddl”语句删除特定条目:

del(list[0]) # remove entry 0
del(list[0:2]) # remove entries 0 and 1