如何在Python中筛选指定十六进制范围内的数值(不使用range函数)
解决十六进制字符串列表的筛选问题
原代码的问题
- 语法错误:
if条件里的<= "00000610"缺少操作数,必须明确写出i <= "00000610" - 冗余无效代码:
num =未完成赋值,属于多余语句
正确实现代码
h = ["00000100", "000000c0", "000000a0", "00000620", "00000660", "00006000"] for i in h: # 直接用字符串比较,所有元素都是等长8位十六进制格式 if "00000100" < i < "00000610": print(i)
说明
因为所有十六进制字符串都是固定8位长度,直接做字符串比较就等价于比较十六进制数值的大小:ASCII编码里,0-9、A-F(小写同理)的字符顺序和十六进制值的顺序完全匹配,所以不用转成整数、也不用range函数就能完成筛选。
注:你的列表里没有符合大于"00000100"且小于"00000610"条件的元素,运行代码不会输出任何结果。
内容的提问来源于stack exchange,提问作者jhonD
相关产品推荐
相关产品推荐

