Python Task05:字典、集合和序列
1、字典基本操作
dic = {
'python': 95,
'java': 99,
'c': 100
}
print(len(dic))
dic['java'] = 98
print(dic)
del dic['c']
print(dic)
dic['php'] = 90
print(dic)
listkey = list(dic.keys())
print(listkey)
listvalue = list(dic.values())
print(listvalue)
if 'javascript' in dic:
print('javascript 在dic中')
else:
print('javascript 不在dic中')
print(sum(listvalue))
print(max(listvalue))
print(min(listvalue))
dic1 = {'php': 97}
dic.update(dic1)
print(dic)
2、字典中的value
data = {
'python': {'上学期': '90', '下学期': '95'},
'c++': ['95', '96', '97'],
'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]
}
def transfer_score(data):
for key in list(data['python'].keys()):
data['python'][key]=int(data['python'].get(key))
for i in range(len(data['c++'])):
data['c++'][i]=int(data['c++'][i])
for key in list(data['java'][0].keys()):
data['java'][0][key]=int(data['java'][0].get(key))
# your code here
3.集合练习题
-
怎么表示只包含⼀个数字1的元组。(1,)
-
创建一个空集合,增加 {‘x’,‘y’,‘z’} 三个元素。
a=set() a.add('x') a.add('y') a.add('z') print(a) 12345
-
列表[‘A’, ‘B’, ‘A’, ‘B’]去重。
a=['A','B','A','B'] ... print(set(a)) 12
-
求两个集合{6, 7, 8},{7, 8, 9}中不重复的元素(差集指的是两个集合交集外的部分)。
a = {6, 7, 9} b = {7, 8, 9} c = a.difference(b) print(c) 1234
-
求{‘A’, ‘B’, ‘C’}中元素在 {‘B’, ‘C’, ‘D’}中出现的次数。
a = {'A','B','C'} b = {'B','C','D'} c = a.intersection(b) print(len(c))
4.序列练习题
-
怎么找出序列中的最⼤、⼩值?
max(sub)返回序列中的最大值
min(sub)返回序列中的最小值 -
sort() 和 sorted() 区别
sort()函数只对list有用
lst.sort(key = None,reverse=False)
key = 函数,这个函数会从每个元素中提取一个用于比较的关键字。默认是False.
作用:对原序列进行排序,也就是直接在原序列上操作,没有返回值。sorted()函数
sorted(iterable,key=None,reverse=False)
literable:可迭代对象
key:函数,这个函数会从每个元素中提取一个用于比较的关键字;默认是None
正确写法是:key=func,函数名称不写括号。 -
怎么快速求 1 到 100 所有整数相加之和?
a = range(101) sum_a = sum(a) 12
-
求列表 [2,3,4,5] 中每个元素的立方根。
a = [2,3,4,5] b = [i**2 for i in a] sum_y = sum(b) 123
-
将[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式。
lst1 = ['x', 'y', 'z'] lst2 = [1, 2, 3] lst2.reverse() b = [] for x in lst1: y = lst2.pop() a = (x, y) b.append(a) print(b)