Python忽略空格访问二进制字符串并筛选指定位为1的元组
实现方法
核心逻辑分两步处理:
- 遍历元组列表时,先对每个元组的首元素(二进制字符串)移除所有空格,得到纯比特串
- 检查目标位置的比特值是否均为
'1',保留符合条件的元组即可
示例代码
# 原始测试数据 raw_list = [ ('01 0 00 0', 'key0'), ('01 0 11 0', 'key1'), ('01 0 11 1', 'key2') ] # 筛选逻辑(Python 3.8+支持海象运算符版本) # 注:当前索引匹配示例预期输出,若你采用从1开始的比特计数规则,将索引值改为对应位数减1即可 result = [ item for item in raw_list if (pure_bin := item[0].replace(' ', ''))[3] == '1' and pure_bin[4] == '1' ] print(result) # 输出:[('01 0 11 0', 'key1'), ('01 0 11 1', 'key2')]
如果使用低于3.8的Python版本,可以用兼容写法:
result = [] for item in raw_list: pure_bin = item[0].replace(' ', '') # 位置判断逻辑和上面一致 if pure_bin[3] == '1' and pure_bin[4] == '1': result.append(item)
str.replace(' ', '')会直接清除字符串内所有空格,不需要额外做分割拼接,逻辑简单效率高,完全满足忽略空格的要求。
内容的提问来源于stack exchange,提问作者DYLAN NICO AMBROSI
相关产品推荐
相关产品推荐

