python组合数据类型

比赛成绩计算

在这里插入图片描述

score = [[87,79,90],[99,83,93],[90,75,89],[89,87,94],[95,85,84]]
for i in range(len(score)):
    final = score[i][0]*0.6 + score[i][1]*0.3 + score[i][2]*0.1
    print('the {} final score is {}'.format(i+1, int(final)))

列表里每一个元素又是一个列表,对应一组的竞赛成绩
利用 len(score) 求得总的组数;
为了在输出语句里输出各组的编号数,所以需要使用带循环变量 i 的 for 循环
在这个循环结构中,按照计算公式计算每一组的总成绩,并显示输出计算结果
因为结果要求显示整数,格式定义里使用了int(final)。

员工工资表

在这里插入图片描述

members = {'张三':['人力部',5500],
            '李四':['后勤部',4500],
            '王三':['市场部',6500],
            '赵六':['开发部',8500]
           }
sal_dep = {}
for key in members:
    print('{}的工资是:{}, 部门是{}'.format(key, members[key][1], members[key][0]))
    sal_dep[members[key][1]] = members[key][0]
max_val = max(sal_dep)
max_name = sal_dep[max_val]
print('工资最高的部门是:{},该部门工资是:{}'.format(max_name,max_val))

字典 members 里的 value 是个列表,所以需要用到列表的索引
对着字典 members 遍历,按照要求显示每个员工的工资和部门信息,另外还要取得工资和部门的名称存入字典 sal_dep
为了统计工资最高的部门的工资,需要字典 sal_dep 来保存这两个信息并且这个字典的 key 应该是工资数
用 max 函数对字典 sal_dep 的 key 进行求最大值的计算,并将最大值赋给变量 max_val
再从字典里,取出 key 为 max_val 的 value 赋给变量 max_name
最后按照要求显示结果

计算向量积

在这里插入图片描述

ls = [111, 222, 333, 444, 555, 666, 777, 888, 999]
lt = [999, 777, 555, 333, 111, 888, 666, 444, 222]
s = 0
for i in range(len(ls)):
    s += ls[i]*lt[i]      #对应i位置的元素相乘后累加
    # 错误代码s+ = ls[i] * lt[i]
print(s)

课程分数按学号排序输出

在这里插入图片描述

#studs列表中的元素是字典
studs= [{'sid':'103','Chinese': 90},
{'sid':'101','Chinese': 80},
{'sid':'102','Chinese': 70}]
scores = {}  
for stud in studs:
    sv = stud.items()  #sv被赋值为二维列表,形如[('sid','103'),('Chinese',90)]
    for it in sv:      
        if it[0] == 'sid':   #第一次访问:it = ('sid','103')
            k = it[1]        # k = '103'
        else:                #第二次访问:it = ('Chinese',90) it[1] = 90
            scores[k]  = it[1]   #scores["103"] = 90
so = list(scores.items())   #形如:[('103':90),('101':80),...]
so.sort(key = lambda x:x[0],reverse = False) #按学号进行排序
for l in so:
    print('{}:{}'.format(l[0],l[1]))   #遍历输出排序后结果
  1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
  2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;
  3. 对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv = stud.items(),是第一个空的答案;
  4. 题目要求提取学生的学号,所以需要比较键it[0]是否是’sid’,是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值,scores[k] = v,是第二个空的答案
  5. 经过对studs列表里的各条字典处理完之后,新的scores字典就全部生成。
  6. 题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so = list(scores.items())
  7. 用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;
  8. 对排好序的列表输出每组列表。

计算向量的内积

在这里插入图片描述

flag = 1
while flag:
    try:
        n = eval(input())
        xin = input().split(',')
        yin = input().split(',')
        flag =0
        sum = 0
        for i in range(n):
            sum += int(xin[i]) * int(yin[i])
        print("x和y的内积是:", sum)
    except:
       print("请输入整数!")
       flag =1

列表元素统计

在这里插入图片描述

def is_prime(n):               #定义判断n是否是素数的函数
    for i in range(2,n):       #如果是,函数值为True
        if n % i == 0:         
            return False       #如果不是,函数值返回为False
    return True

ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]  #本题目主要针对的是没有重复数据的列表
for i in ls.copy():                     #遍历ls中每一个元素,ls.copy()这是一个拷贝副本,保证删除ls中的元素后,不影响元素遍历。
    if is_prime(i) == True:             #如果i是素数
        ls.remove(i)                    #使用remove方法,从列表ls中删除i
print(len(ls))                          #输出去除素数后,ls的元素个数len(ls)

字典交换

在这里插入图片描述

def reverse_dict(dic):
    out = {}
    for k,v in dic.items():
        out[v] = k
    keys = sorted(out.keys(),reverse = True)

    for k in keys:
        print(k,out[k])
    return out
#请输入一个字典
dic = eval(input(""))
reverse_dict(dic)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中常用的组合数据类型有列表、元组、集合和字典。 1. 列表:列表是一种有序的数据集合,可以存储任意类型的数据,使用方括号 [] 来表示,每个元素之间用逗号分隔。列表支持索引、切片、添加、删除、修改等操作。 示例代码: ```python # 创建一个列表 my_list = [1, 2, 'hello', [3, 4]] # 访问列表元素 print(my_list[0]) # 输出:1 # 列表切片 print(my_list[1:3]) # 输出:[2, 'hello'] # 添加元素 my_list.append('world') print(my_list) # 输出:[1, 2, 'hello', [3, 4], 'world'] # 删除元素 del my_list[2] print(my_list) # 输出:[1, 2, [3, 4], 'world'] # 修改元素 my_list[0] = 0 print(my_list) # 输出:[0, 2, [3, 4], 'world'] ``` 2. 元组:元组也是一种有序的数据集合,与列表不同的是,元组一旦创建就不能修改,使用圆括号 () 来表示,每个元素之间用逗号分隔。元组支持索引、切片等操作。 示例代码: ```python # 创建一个元组 my_tuple = (1, 2, 'hello', [3, 4]) # 访问元组元素 print(my_tuple[0]) # 输出:1 # 元组切片 print(my_tuple[1:3]) # 输出:(2, 'hello') ``` 3. 集合:集合是一种无序的数据集合,不允许有重复元素,使用大括号 {} 或 set() 函数来表示。集合支持并集、交集、差集等操作。 示例代码: ```python # 创建一个集合 my_set = {1, 2, 3, 4, 5} # 添加元素 my_set.add(6) print(my_set) # 输出:{1, 2, 3, 4, 5, 6} # 删除元素 my_set.remove(6) print(my_set) # 输出:{1, 2, 3, 4, 5} # 集合运算 set1 = {1, 2, 3} set2 = {2, 3, 4} print(set1 | set2) # 输出:{1, 2, 3, 4} print(set1 & set2) # 输出:{2, 3} print(set1 - set2) # 输出:{1} ``` 4. 字典:字典是一种无序的键值对集合,使用大括号 {} 来表示,每个键值对之间用冒号 : 分隔,键值对之间用逗号分隔。字典支持添加、删除、修改、查找等操作。 示例代码: ```python # 创建一个字典 my_dict = {'name': 'Tom', 'age': 18, 'gender': 'male'} # 访问字典元素 print(my_dict['name']) # 输出:Tom # 添加元素 my_dict['height'] = 180 print(my_dict) # 输出:{'name': 'Tom', 'age': 18, 'gender': 'male', 'height': 180} # 删除元素 del my_dict['gender'] print(my_dict) # 输出:{'name': 'Tom', 'age': 18, 'height': 180} # 修改元素 my_dict['age'] = 20 print(my_dict) # 输出:{'name': 'Tom', 'age': 20, 'height': 180} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值