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])
拆分这个 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])