我有一个二进制字符串说'01110000',并且我想返回前面没有写forloop的前导零的数量。有没有人有任何想法如何做到这一点?优选的是还返回0的方式,如果该字符串立即用“1”开始蟒蛇技巧找到字符串中的前导零
回答
一个简单的一行:
x = '01110000'
leading_zeros = len(x.split('1', 1)[0])
此分隔串入一切到第一“1”,其余的之后,然后计算前缀的长度。 split
的第二个参数只是一个优化,表示要执行的拆分次数,意味着函数在找到第一个“1”后停止,而不是在所有事件中拆分它。如果性能无关紧要,您可以使用x.split('1')[0]
。
+1这可能是处理所有零串的最直接的方法。 – millimoose
如果你真的确保这是一个“二进制字符串”:
input = '01110000'
zeroes = input.index('1')
更新:它打破的时候没有什么,但“龙头”零
另一种形式的处理清一色零情况。
zeroes = (input+'1').index('1')
+1,这比我的简单:)你可以在字符串后加'1'来确保它总是包含一个。 – l4mpi
如果你知道这只是0或1:
x.find(1)
(将返回-1,如果所有的零,你可能会或可能不希望这种行为)
这里是另一种方式:
In [36]: s = '01110000'
In [37]: len(s) - len(s.lstrip('0'))
Out[37]: 1
它不同于其他解决方案,它实际上计数前导零而不是找到第一个1
。这使得它更通用一些,但对于您的具体问题无关紧要。
我会使用:
s = '00001010'
sum(1 for _ in itertools.takewhile('0'.__eq__, s))
而是Python的,作品在一般情况下,例如在空字符串和非二进制字符串,并且可以处理任何长度的字符串(甚至迭代器)。
re
模块怎么样?
a = re.search('(?!0)', data)
then a.start()
是位置。
- 1. 找到字符串蟒蛇
- 2. 导入字符串 - 蟒蛇
- 3. 蟒蛇重新找到字符串
- 4. 字符串到蟒蛇wstring
- 5. 查找字符串中的字符串列表中的蟒蛇
- 6. 蟒蛇:字符串
- 7. JSON中带前导零的字符串?
- 8. 蟒蛇找到字符串中的特定变量
- 9. 找到列表串 - 蟒蛇
- 10. 蟒蛇:分割字符串的字符
- 11. 蟒蛇 - 多串找到多个字符串
- 12. 获取字符串蟒蛇
- 13. 蟒蛇:清理字符串
- 14. 蟒蛇:从JavaScript字符串
- 15. 地带串字符蟒蛇
- 16. 蟒蛇搜索字符串
- 17. 切片字符串蟒蛇
- 18. 蟒蛇,字符串方法
- 19. 蟒蛇字符串分割
- 20. 字符串连接“\”蟒蛇
- 21. 蟒蛇,格式字符串
- 22. 蟒蛇:从字符串
- 23. 蟒蛇从字符串
- 24. 字符串连接蟒蛇
- 25. 字符串整数蟒蛇
- 26. 格式字符串蟒蛇
- 27. 蟒蛇改变字符串
- 28. 如何蟒蛇解释数字与前导零
- 29. 蟒蛇得到从字符串
- 30. 追加到字符串蟒蛇
“二进制串”实际上并不合理。这是一个恰好代表以base-2编写的数字的文本字符串。 – millimoose