簡體   English   中英

如何根據 Python 中的特定項目從列表中獲取項目

[英]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]

所以我們在做什么:線性查找這四個給定值(索引ii+1i+2i+3 ),如果找到它們,我們從列表中取出接下來的四個值 - 索引i+4i+5i+6i+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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM