[英]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.