我有以下清單
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 個應該是最終輸出的專案。但我無法決定如何去做。任何人都可以請幫忙。
uj5u.com熱心網友回復:
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。
uj5u.com熱心網友回復:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351686.html
