[英]How to get items from a list based on specific item in Python
我有以下清單
l = ['7E', '00', '10', '97', '9A', '00', '13', 'A2', '00', '41', 'B6', '13', '58', 'FF', 'FE', '41', '50', '00', '01', '28']
從上面的列表中,我想提取41 B6 13 58
,它總是在00 13 A2 00
並且總是長度為 4。
我想根據00
的索引(就在41
之前)提取它,但是列表中可能有很多00
所以這並不總是正確的。
所以,我必須確保它總是00 13 A2 00
,然后得到的指數00
(這是后A2
),並從該指數未來提取4個項目應該是最終的輸出。 但我無法決定如何去做。 任何人都可以請幫忙。
for i in range(0, len(l)-8):
if l[i:i+4] == ['00', '13', 'A2', '00']:
return l[i+4:i+8]
所以我們在做什么:線性查找這四個給定值(索引i
、 i+1
、 i+2
和i+3
),如果找到它們,我們從列表中取出接下來的四個值 - 索引i+4
、 i+5
、 i+6
和i+7
。
l = ['7E', '00', '10', '97', '9A', '00', '13', 'A2', '00', '41', 'B6', '13', '58', 'FF', 'FE', '41', '50', '00', '01', '28']
SEQUENCE = "00 13 A2 00"
str_l = " ".join(l)
print(str_l)
position = str_l.find(SEQUENCE) # this gives us the position where the sequence starts
print(position)
required = "xx xx xx xx" # assuming we dont know what exactly to extract, but we know its length
req = str_l[position+len(SEQUENCE)+1: position + len(SEQUENCE)+len(required)+1]
print(req)
# to get the required output
req = req.split(" ")
print(req)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.