我的电子表格中包含A067,A002,A104
等文字值。最有效的方法是什么?现在我正在做以下事情:
str = 'A067'
str = str.replace('A','')
n = int(str)
print n
答案 0 :(得分:1)
根据您的数据,以下内容可能适用:
import string
print int('A067'.strip(string.ascii_letters))
Python strip()
命令获取要从字符串的开头和结尾删除的字符列表。通过传递string.ascii_letters
,它会从字符串中删除任何前面和后面的字母。
答案 1 :(得分:0)
您可以使用正则表达式查找数字。
import re
s = 'A067'
s = re.findall(r'\d+', s) # This will find all numbers in the string
n = int(s[0]) # This will get the first number. Note: If no numbers will throw exception. A simple check can avoid this
print n
这里是一些带有不同字符串的findall的示例输出
>>> a = re.findall(r'\d+', 'A067')
>>> a
['067']
>>> a = re.findall(r'\d+', 'A067 B67')
>>> a
['067', '67']
答案 2 :(得分:0)
您可以使用re模块中的regex替换方法。
import re
regex = re.compile("(?P<numbers>.*?\d+")
matcher = regex.search(line)
if matcher:
numbers = int(matcher.groupdict()["numbers"] #this will give you the numbers from the captured group
答案 3 :(得分:0)
import string
str = 'A067'
print (int(str.strip(string.ascii_letters)))
答案 4 :(得分:0)
如果输入的唯一非数字部分将是第一个字母,最快的方法可能是切割字符串:
s = 'A067'
n = int(s[1:])
print n
如果您认为每个字符串会找到多个数字,则上述正则表达式答案很可能更容易使用。