字典
1、字典基本操作
字典内容如下:
dic = {
'python': 95,
'java': 99,
'c': 100
}
用程序解答下面的题目
字典的长度是多少
请修改’java’ 这个key对应的value值为98
删除 c 这个key
增加一个key-value对,key值为 php, value是90
获取所有的key值,存储在列表里
获取所有的value值,存储在列表里
判断 javascript 是否在字典中
获得字典里所有value 的和
获取字典里最大的value
获取字典里最小的value
字典 dic1 = {‘php’: 97}, 将dic1的数据更新到dic中
dic = {'python': 95, 'java': 99, 'c': 100}
print(len(dic))
dic['java'] = 98
print(dic)
del dic['c']
print(dic)
dic.setdefault('php', 90)
print(dic)
lst1 = list(dic.keys())
print(lst1)
lst2 = list(dic.values())
print(lst2)
print('javascript' in dic)
print(sum(lst2))
print(max(lst2))
print(min(lst2))
dic1 = {'php': 97}
dic.update(dic1)
print(dic)
2、字典中的value
有一个字典,保存的是学生各个编程语言的成绩,内容如下
data = {
'python': {'上学期': '90', '下学期': '95'},
'c++': ['95', '96', '97'],
'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]
}
各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函数transfer_score(score_dict),将分数修改成int类型
def transfer_score(data):
# your code here
'python': {'上学期': '90', '下学期': '95'}, 'c++': ['95', '96', '97'], 'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}] } def transfer_score(data): dic = {} listk = list(data.keys()) listv = list(data.values()) for i in range(len(listk)): if type(listv[i]) == list: for j in range(len(listv[i])): if type(listv[i][j]) == list: for k in range(len(listv[i][j])): listv[i][j][k] = int(listv[i][j][k]) if type(listv[i][j]) == dict: dic1 = listv[i][j] dic2 = {} dic1k = list(dic1.keys()) dic1v = list(dic1.values()) for p in range(len(dic1v)): dic1v[p] = int(dic1v[p]) for q in range(len(dic1k)): dic2[dic1k[q]] = dic1v[q] listv[i][j] = dic2 if type(listv[i][j]) == str: listv[i][j] = int(listv[i][j]) if type(listv[i]) == dict: dic1 = listv[i] dic2 = {} dic1k = list(dic1.keys()) dic1v = list(dic1.values()) for p in range(len(dic1v)): dic1v[p] = int(dic1v[p]) for q in range(len(dic1k)): dic2[dic1k[q]] = dic1v[q] listv[i] = dic2 for m in range(len(listk)): dic[listk[m]] = listv[m] return dic dd = transfer_score(data1) print(dd) ```
集合
练习题:
1.怎么表示只包含⼀个数字1的元组。
{1,}
2.创建一个空集合,增加 {‘x’,‘y’,‘z’} 三个元素。
a = set()
a.add(‘x’)
a.add(‘y’)
a.add(‘z’)
c=set(‘xyz’)
3.列表[‘A’, ‘B’, ‘A’, ‘B’]去重。
set([‘A’, ‘B’, ‘A’, ‘B’])
4.求两个集合{6, 7, 8},{7, 8, 9}中不重复的元素(差集指的是两个集合交集外的部分)。
A={6, 7, 8}
B={7, 8, 9}
(A|B)-(A&B)
5.求{‘A’, ‘B’, ‘C’}中元素在 {‘B’, ‘C’, ‘D’}中出现的次数。
A={6, 7, 8}
B={7, 8, 9}
(A|B)-(A&B)
序列
练习题:
1.怎么找出序列中的最⼤、⼩值?
max(seq)
min(seq)
2.sort() 和 sorted() 区别
sort()是list内置函数,而sorted()是全局函数
sort()会对原列表进行修改,而sorted()不会
3.怎么快速求 1 到 100 所有整数相加之和?
sum(rang(1,101))
4.求列表 [2,3,4,5] 中每个元素的立方根。
map_root = [item for item in map(lambda x : pow(x,1/3), [2,3,4,5])]
print(map_root)
5.将[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式。
a=[‘x’,‘y’,‘z’]
b=[1,2,3]
c=list(zip(a,b))