Python - 将值拆分为两个整数

Python - split value to two integers

拆分这个 key/value 字典的最佳方法是什么:

test_status: "2200/2204(99%)"

所以我得到两个值为整数的键:

test_status_excpected: 2204
test_status_got: 2200
pair = {'test_status': '2200/2204(99%)'}

for key, value in pair.items():
    value = value[:9] # this will keep first 9 char which drops (99%) part
    years = value.split("/")
    new_pair = {
        "test_status_excpected": years[1],
        "test_status_got": years[0]
    }

print(new_pair)
# output: {'test_status_excpected': '2204', 'test_status_got': '2200'}

使用索引拆分字符串。

test_status_expected = dic_name["test_status"][:4]
test_status_got = dic_name["test_status"][5:9]

如果不确定索引可以用like:

test_status_expected = dic_name["test_status"][:dic_name["test_status"].index("/")]
test_status_got = dic_name["test_status"][dic_name["test_status"].index("/")+1:dic_name["test_status"].index("(")]

您可以使用 re 模块。例如:

import re
test_status = "2200/2204(99%)"
m = re.findall('\d+', test_status)
print(m[0], m[1])

输出:

2200 2204

注:

此代码隐含地假定在字符串中至少可以找到两个数字序列

使用 /( 作为分隔符进行拆分。

第一个值是/

剩下的值

第二个值是 / 右边和 ( 左边的值

然后将结果转换为 int

myDict["test_status_excpected"] = int(myDict["test_status"].split("/")[0])
myDict["test_status_got"] = int(myDict["test_status"].split("/")[1].split("(")[0])