簡體   English   中英

如何刪除所有 7 個字符長的零 python

[英]how to remove all zeros that are 7 characters long python

我制作了一個沒有空格的字符串。 所以我用 0000000 代替了空格。但是不會有字母。 例如,000000020000000050000000190000000200000000 應該等於“測試”。 抱歉,我對 python 很陌生,而且不好。 所以如果有人可以幫助我,那就太棒了。

您應該能夠使用正則表達式和re.sub()達到預期的效果

如果您想從注釋中提到的該字符串中提取文字“test”,您需要考慮這樣一個事實,即如果您有 8 個0 ,它將從左到右匹配前 7 個,所以像20后跟 7 0這樣的數字會導致一些問題。 我們可以通過反向匹配字符串(從右到左)然后反轉完成的字符串以撤消初始反轉來解決此問題。

這是我作為修改后的答案提出的解決方案:

import re

my_string = '000000020000000050000000190000000200000000'

# Substitute a space in place of 7 0's
# Reverse the string in the input, and then reverse the output
new_string = re.sub('0{7}', ' ', my_string[::-1])[::-1]
# >>> new_string
# ' 20 5 19 20 '

然后我們可以從這個答案中去除前導和尾隨空格並將其拆分為一個數組

my_array = new_string.strip().split()
# >>> my_array
# ['20', '5', '19', '20']

之后,您可以以任何您認為合適的方式處理數組,以便從中提取“測試”一詞。

我對此的解決方案可能如下:

import string

word = ''.join([string.ascii_lowercase[int(x) - 1] for x in my_array])
# >>> word
# 'test'

注意:此答案已完全重寫(v2)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM