字典经典习题

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)
View Code

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)
View Code

# 解法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)
View Code

#解法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)
View Code

 

以上是关于字典经典习题的主要内容,如果未能解决你的问题,请参考以下文章

Python习题集

Python3练习题系列(08)——代码阅读方法及字典跳转表理解

数据结构二叉树经典基础习题

Python经典编程习题100例,供初学者学习

C语言经典习题

封装解构,集合,字典,内建函数和简单选择排序相关知识及习题