DAY5

字典

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))
上一篇:[2021.8纪中集训Day5]


下一篇:005、py43-day5-sky-20210803