假设我向用户询问一些随机字母和数字。让我们说他们给了我1254jf4h。我如何取字母jfh并将它们转换为一个单独的变量然后取数字12544并将它们放在一个单独的变量中?
答案 0 :(得分:2)
>>> 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']
答案 1 :(得分:2)
for循环很简单。就个人而言,我会使用filter()。
s = "1254jf4h"
nums = filter(lambda x: x.isdigit(), s)
chars = filter(lambda x: x.isalpha(), s)
print nums # 12544
print chars # jfh
答案 2 :(得分:0)
编辑:哦,你已经得到了答案。忽略。强>
NUMBERS = "0123456789"
LETTERS = "abcdefghijklmnopqrstuvwxyz"
def numalpha(string):
return string.translate(None, NUMBERS), string.translate(None, LETTERS)
print numalpha("14asdf129h53")
函数numalpha返回一个带有两个字符串的2元组,第一个字符串包含原始字符串中的所有字母字符,第二个字符串包含数字。
请注意,这是非常低效的,因为它遍历字符串两次并且没有考虑数字和字母具有连续ASCII代码的事实,尽管它确实具有易于修改以与其他编码一起使用的优点。
另请注意,我只提取了小写字母。是的,这不是我写过的最好的代码片段xD。希望它无论如何都有帮助。