簡體   English   中英

如何從Python中的原始輸入中提取某些數字?

[英]How do I extract certain digits from raw input in Python?

假設我向用戶詢問一些隨機字母和數字。 讓我們說他們給了我1254jf4h。 我如何取字母jfh並將它們轉換為一個單獨的變量然后取數字12544並將它們放在一個單獨的變量中?

>>> s="1254jf4h"
>>> num=[]
>>> alpah=[]
>>> for n,i in enumerate(s):
...   if i.isdigit():
...      num.append(i)
...   else:
...      alpah.append(i)
...
>>> alpah
['j', 'f', 'h']
>>> num
['1', '2', '5', '4', '4']

for循環很簡單。 就個人而言,我會使用filter()。

s = "1254jf4h"
nums = filter(lambda x: x.isdigit(), s)
chars  = filter(lambda x: x.isalpha(), s)

print nums # 12544
print chars # jfh

編輯:哦,你已經得到了答案。 忽視。

NUMBERS = "0123456789"
LETTERS = "abcdefghijklmnopqrstuvwxyz"

def numalpha(string):
    return string.translate(None, NUMBERS), string.translate(None, LETTERS)

print numalpha("14asdf129h53")

函數numalpha返回一個帶有兩個字符串的2元組,第一個字符串包含原始字符串中的所有字母字符,第二個字符串包含數字。

請注意,這是非常低效的,因為它遍歷字符串兩次並且沒有考慮數字和字母具有連續ASCII代碼的事實,盡管它確實具有易於修改以與其他編碼一起使用的優點。

另請注意,我只提取了小寫字母。 是的,這不是我寫過的最好的代碼片段xD。 無論如何希望它有所幫助。

暫無
暫無

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

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