我希望能够统计包含十六进制代码的变量中出现“00”的次数。分割变量来计算双字符组的数量
这是计算NULL的量字节包含在此代码内,所以我要计数各2位数字为1
48657920697420776f726b73000000000000000000000000000000000000
使用例如十六进制代码设置为变量,我试图分裂它变成一个列表,如
['48' '65' '79' etc]
,然后计数,但不能让它的工作
我希望能够统计包含十六进制代码的变量中出现“00”的次数。分割变量来计算双字符组的数量
这是计算NULL的量字节包含在此代码内,所以我要计数各2位数字为1
48657920697420776f726b73000000000000000000000000000000000000
使用例如十六进制代码设置为变量,我试图分裂它变成一个列表,如
['48' '65' '79' etc]
,然后计数,但不能让它的工作
假设你可能有非常长字符串,而从二进制文件计数NUL字节,一个迭代器基于方法可能是首选:
>>> s="48657920697420776f726b73000000000000000000000000000000000000"
>>> sum(1 if x == ('0','0') else 0 for x in zip(*[iter(s)]*2))
18
谢谢。两个答案都能很好地工作并给出相同的结果,但已经使用了这个 – MPythonLearner 2014-08-28 12:09:08
与尝试:
line = '48657920697420776f726b73000000000000000000000000000000000000'
n = 2
list = [line[i:i+n] for i in range(0, len(line), n)]
list.count('00')
你可以看到一个工作样本here
希望这有助于
谢谢伟大的工作,我有一些非常接近这一点,只是不太那里 – MPythonLearner 2014-08-28 12:09:42
我也开始学习Python,所以有时我被困在这样的事情。我很乐意帮助你:)。 – albciff 2014-08-28 12:21:51
*“无法让它工作”* - 所以哪里代码,以及它究竟有什么问题? – jonrsharpe 2014-08-28 11:19:42