字典经典习题
Posted gaofeng-d
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典经典习题相关的知识,希望对你有一定的参考价值。
1.有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {‘k‘:1,‘k1‘:2....}
1 # 转换成字典(面试题) 这里面主要就是一个切割 2 str1 = "k:1|k1:2|k2:3|k3:4" 3 dic = {} 4 lst = str1.split("|") 5 for l in lst: 6 lst2 = l.split(":") 7 dic[lst2[0]] = lst2[1] 8 print(dic)
2.元素分类:有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1‘: 大于66的所有值列表, ‘k2‘: 小于66的所有值列表}
# 解法1 最撮
1 # 最直接的先初始化两个key 如果全部在一边就不太好 2 dic = {‘k1‘: [], "k2": []} 3 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] 4 for num in li: 5 if num > 66: 6 dic["k1"].append(num) 7 else: 8 dic["k2"].append(num) 9 print(dic)
# 解法2 get方法
1 dic = {} 2 for num in li: 3 if num > 66: 4 if dic.get("k1") == None: 5 dic["k1"] = [num] 6 # 第一次指定key1的值得时候,一定要是列表的形式 7 8 else: 9 dic["k1"].append(num) 10 # 进入列表就是append 11 else: 12 if dic.get("k2") == None: 13 dic["k2"] = [num] 14 else: 15 dic["k2"].append(num) 16 17 print(dic)
#解法3 setdefault 对get的进一步抽象
1 dic = {} 2 for num in li: 3 if num < 66: 4 dic.setdefault(‘key1‘, []).append(num) 5 else: 6 dic.setdefault(‘key2‘, []).append(num) 7 print(dic)
以上是关于字典经典习题的主要内容,如果未能解决你的问题,请参考以下文章