# 方法(一)
s = "k:1|k2:2" # 目标字符串
dict1 = {} #定义一个字典,用于存储之后处理好的数据
list1 = s.split('|') # 字符串进行切割后会变成一个列表类型
for x in list1: #定义一个循环遍历列表
k, v = x.split(':') # 在进行切割,变成['k','1'],['k2','2']这种类型后,将列表中的两个元素分别赋值给 k,v
dict1[k] = int(v) # 这里将 V的值由字符串类型转化成整数类型,然后这里涉及到了字典的存储方式,根据标签存储
print(dict1)
# 方法(二)
# 【概念】使用Python匿名函数lambda,语法格式 ——> lambda 参数列表:return [表达式] 变量
# 【lambda x的解释】lambda x: x.split(':'), s.split('|')代码的意思是,定义了一个匿名函数,方法的参数是x,
# 返回值表达式是x.split(':')的处理结果为返回值,传入匿名函数的参数是 s.split('|')的处理结果。
# 【map 函数的解释】 map函数通过将的匿名函数的结果转换为一个新的列表并返回,这里匿名函数的结果是包含了两个列表的这里要将它合并成一个大列表。
# 就是这样的格式:[['k','1'],['k2','2']] 然后for循环就是把每个列表循环出来并把里面的两个元素分别赋值给 k v
# 最后根据 k:v 的格式转换成字典 这里的 int(v) 是将V的值由字符串类型转化成整数类型
dict1 = {k: int(v) for k, v in map(lambda x: x.split(':'), s.split('|'))}
print(dict1)