Python:从obj中删除特定行

2024-06-16 14:53:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个奇怪的问题。你知道吗

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

print list
["line1","line2","line3","line4"]
list = list.drop([0 - 1])
print list
["line3","line4"]

如果有人知道我需要什么,我会非常感谢你帮我。我唯一能想到的就是写一个循环来遍历,并生成一个只放入我需要的内容的新列表。不管怎样,萨尔克斯!你知道吗

迈克尔


Tags: 对象解析器列表条目性能sshlistprint
3条回答

这就是slice运算符的作用:

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

在这个例子中,before[2:]说‘给我列表中的元素before,从元素2开始一直到最后。’

(另外--不要使用listdict等保留字作为变量名--这样做可能会导致错误混淆)

您可以使用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']

切片:

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

切片语法是[from(included):to(excluded):step]。每个部分都是可选的。因此,您可以编写[:]来获取整个列表(或者任何关于这个问题的iterable--stringtuple作为内置示例)。也可以使用负索引,因此[:-2]表示从开始到最后一个元素。你也可以退一步,[::-1]意思是全部获得,但顺序相反。你知道吗

另外,不要使用list作为变量名。它重写了内置的list类。你知道吗

相关问题 更多 >