Python

Python基础知识

Task5 字典
一、字典、集合、序列
练习题:
1、字典基本操作
字典内容如下:
dic = {
‘python’: 95,
‘java’: 99,
‘c’: 100
}
用程序解答下面的题目

#字典的长度是多少
dic = {'python':95, 'java':99, 'c':100}
print(len(dic))
# 3

#请修改'java' 这个key对应的value值为98
dic['java']=98
print(dic)
#{'python': 95, 'java': 98, 'c': 100}

# 删除 c 这个key
del dic['c']
print(dic)
#{'python': 95, 'java': 98}

# 增加一个key-value对,key值为 php, value是90
dic['php'] = 90
print(dic)
#{'python': 95, 'java': 98, 'php': 90}

#获取所有的key值,存储在列表里
lst = list(dic.keys())
print(lst)
#['python', 'java', 'php']

#获取所有的value值,存储在列表里
lst1 = list(dic.values())
print(lst1)
#[95, 98, 90]

#判断 javascript 是否在字典中
if 'javascript' in dic:
...     print('javascript存在')
... else:
...     print('javascript不存在')
...     
javascript不存在

#获得字典里所有value 的和
for x in list1:
...     sum += x
print(sum)
#283

#获取字典里最大的value
print(max(lst1))
#98

# 获取字典里最小的value
print(min(lst1))
#90

#字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中
dic1 = {'php':97}
dic.update(dic1)
print(dic)
#{'python': 95, 'java': 98, 'php': 97}

2、字典中的value
有一个字典,保存的是学生各个编程语言的成绩,内容如下
data = {
‘python’: {‘上学期’: ‘90’, ‘下学期’: ‘95’},
‘c++’: [‘95’, ‘96’, ‘97’],
‘java’: [{‘月考’:‘90’, ‘期中考试’: ‘94’, ‘期末考试’: ‘98’}]
}
各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函数 transfer_score(score_dict) ,将分数修改成int类型。

import pprint

def transfer_score(data):
    #如果data是字典
    if isinstance(data, dict):
       for key, value, in data.item():
         data[key]=transfer_score(value)
       return data

     #如果data是列表
     if isinstance(data, list):
        data_lst = []
        for item in data:
            data_lst.append(transfer_score(item))

        return data_lst

    if isinstance(data, str):
        return int(data)

    if __name__ == '_main_':
        data = {
            'python':{'上学期' : '90', '下学期' : '95'},
            'c++': ['95', '96', '97'],
            'java': [{'月考': '90', '期中考试': '94', '期末考试': '98'}]
        }

           

二、集合

练习题:

  1. 怎么表示只包含⼀个数字1的元组。
    (1,)
  2. 创建一个空集合,增加 {‘x’,‘y’,‘z’} 三个元素。
a=set()
a.add('x')
a.add('y')
a.add('z')
print(a)
#{'x', 'y', 'z'}
  1. 列表[‘A’, ‘B’, ‘A’, ‘B’]去重。
a=['A','B','A','B']
... print(set(a))
#{'A', 'B'}
  1. 求两个集合{6, 7, 8},{7, 8, 9}中不重复的元素(差集指的是两个集合交集外的部分)。
a = {6, 7, 9}
b = {7, 8, 9}
c = a.difference(b)
print(c)
#{6}
  1. 求{‘A’, ‘B’, ‘C’}中元素在 {‘B’, ‘C’, ‘D’}中出现的次数。
a = {'A','B','C'}
b = {'B','C','D'}
c = a.intersection(b)
print(len(c))
#2

三、列表

练习题:

  1. 怎么找出序列中的最⼤、⼩值?

max(sub)返回序列中的最大值
min(sub)返回序列中的最小值

  1. 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. 怎么快速求 1 到 100 所有整数相加之和?
a = range(101)
sum_a = sum(a)
#5050
  1. 求列表 [2,3,4,5] 中每个元素的立方根。
a = [2,3,4,5]
b = [i**2 for i in a]
sum_y = sum(b)
#54
  1. 将[‘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)
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页