如何检查哪些十六进制数在十六进制数表示的范围内?

问题描述 投票:0回答:2

我有一个十六进制数字列表,我想找到这个数字在特定范围内的内容,不使用范围Python函数

十六进制数列表如下:

h = ["00000100", "000000c0", "000000a0" "00000620", "00000660", "00006000"]

我想在Python中找到大于

"00000100"
且小于
"00000610"
的数字。

那么我该怎么做呢?

我尝试过以下代码:

h = ["00000100", "000000c0", "000000a0" "00000620", "00000660", "00006000"]
num = 
for i in h:
    if i >="00000100"and <= "00000610":
        print(i)
python compare hex string-comparison
2个回答
1
投票

int
内置函数可以转换任何基数的字符串:

h = ["00000100", "000000c0", "000000a0" "00000620", "00000660", "00006000"]

for s in h:
    if int("00000100", 16) <= int(s, 16) <= int("00000610", 16):
        print(s)

打印:

00000100

0
投票

如果所有元素的长度与 OP 发布的长度相同,则这将起作用。如果值是变量长度,那么我们可以使用@Booboo

发布的
int()

来转换它们
h = ["00000100", "000000c0", "000000a0" "00000620", "00000660", "00006000"] 
for i in h:
    if i >="00000100"and i<= "00000610":
        print(i)
#output
00000100

oneliner 列表比较:

[i for i in h if i >="00000100"and i<= "00000610"]
["00000100"]
© www.soinside.com 2019 - 2024. All rights reserved.