from itertools import chain data = '7E010101120304050607087E010301020304050607987E01090102030405060710' data = "7E0000000000000000A15E1F197E0000000000000000C10311197E0000000000000000811D16197E0000000000000000815D1F197E000000000000000011C919197E000000000000000061B61B197E0000000000000000000000007E0000000000000000E1E00F197E000000000000000021E00F197E000000000000000041D20F197E0000000000000000111D21197E0000000000000000319A0D197E0000000000000000C1E10F197E0000000000000000A11E16197E0000000000000000B11D1619" result = {} # for i in range(0, len(data), 22): # key = int(data[i + 2:i + 4], 16) # value = data[i + 6:i + 22] # result.setdefault(key, []).append(value) # # print(result) """{1: ['A15E1F19', 'C1031119', '811D1619', ]}""" data_list = data.split("7E") for index, data in enumerate(data_list): print(data) print("===") if data and len(data) > 8: value = data[-8:] if value != "00000000": result.setdefault(value, index) print(result) # out_rfid_set = set(list(chain.from_iterable(result.values()))) out_rfid_set = set(i for i in result.keys() if i != "00000000") print(out_rfid_set) a = {'61B61B19', '21E00F19', '111D2119', 'C1E10F19',} b = {'61B61B19', '21E00F19', '111D2119'}