![](/img/trans.png)
[英]How to create txt frequency counter with all letters (a-z) in python 3
[英]How to delete letters [A-Z] with python
我想從字符串中刪除字母並保存從這些行中刪除的變量,如下所示:
輸入 =
1.785K
10MEG
999.1V
預期的 :
Value = 1.785
Units detected = K
Value = 10
Units detected = MEG
Value = 999.1
Units detected = V
我嘗試使用此代碼但不起作用
list = ['1.785K','10MEG','999.1V']
for l in list:
l.replace("[A-Z]", "")
print("Value =" + l)
print("Units detected =" )
因為看起來你的單位總是在最后,你可以避免使用正則表達式而只使用str.rstrip
。
它刪除可以作為包含要刪除的所有字符的字符串提供的字符后綴。 模塊string
定義了包含所有 AZ 字符的ascii_uppercase
。
至於獲取刪除的字符,您可以使用剝離字符串的長度對原始字符串進行切片並准確獲取刪除的字符
嘗試這個:
from string import ascii_uppercase
list = ['1.785K','10MEG','999.1V']
for l in list:
after_strip = l.rstrip(ascii_uppercase)
stripped_chars = l[len(after_strip):]
print("Value = " + l)
print("Units detected = " + stripped_chars)
你去吧:
我已經使用正則表達式解決了這個問題
import re
input = '''1.785K
10MEG
999.1V
'''
for val,unit in re.findall('([0-9\.]+)([A-Za-z]+)',input):
print('Value : ',val)
print('Units : ',unit)
print()
輸出:
Value : 1.785
Units : K
Value : 10
Units : MEG
Value : 999.1
Units : V
正則鏈接:
您可以使用str
translate
方法來擺脫不需要的字符
import string
t = str.maketrans('','',string.ascii_uppercase)
data = ["1.785K","10MEG","999.1V"]
for d in data:
print(d.translate(t))
輸出:
1.785
10
999.1
maketrans接受 3 個參數,在這種情況下,第 2 個是空的,因為我們只需要刪除字符,而不是替換。 但是,當您需要這些單元時,我建議使用re
進行以下方式:
import re
data = ["1.785K","10MEG","999.1V"]
for d in data:
print(re.findall(r'(.*?)([A-Z]+)',d))
輸出:
[('1.785', 'K')]
[('10', 'MEG')]
[('999.1', 'V')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.