set zip sort sorted

这里写图片描述

zip sort sorted set方法的用法

zip

  1. 示例一
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
zip(x, y, z)
输出为:(这是在python2下的输出,在python3中的输出为对象的逻辑地址)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
  1. 示例二
x = [1, 2, 4, 23, 12,]
y = [24, 2, 89]
z = [23]
zip(x, y, z)
输出为:
[(1, 24, 23)]
  1. 示例三
    在示例一的基础上对示例三继续进行zip函数
baidu = zip(*xyz)
输出为:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

这样有回到了原始的形式。
注:在函数调用中使用*list/tuple的方式表示将list/tuple中的每个元素分开对待, 作为对应位置参数传递给对应函数,(前提是对应的函数支持变长的参数个数)。

sort和sorted

这两个函数都是排序的函数,但是有着很大的区别:

  • sort只是对list,也就是列表类型的数据进行排序而对于其他的数据类型则没有sort的排序方法。sorted方法对集合类的数据都可以进行排序,具体在python 中可以对list,tuple,dict,set等的数据类型进行排序。
  • sort方法排序是在原来的list实现的排序,也就是会改变原来的list的顺序,而sorted则不会,不会对原来的list更改顺序,sorted是对原有的集合副本进行排序,不会更改原来的集合的顺序。

sorted(iterable, cmp=None, key=None, reverse=False)
L.sort(cmp=None, key=None, rreverse=False)

下面分别说一下cmp,key和reverse

  • cmp选项: 这里默认是None,这个选项的含义和C语言库函数sort中的cmp的用法是相同的,在C语言中cmp是一个函数指针,而在python中没有函数指针的概念,但是python中有lambda表达式,可以使用lambda表达式代替C语言中的函数指针,除了lambda表达式之外,python还可以使用匿名函数方式。
  • key其实和cmp的作用差不多,但是key还有其更广泛的用途,比如比较的是字典或者是元组数据类型,需要制定比较的是字典的key还是value,或者如果是tuple需要指定用元组的第几维数据进行比较。这就是key和cmp的不同。并且在官方的文档中指出key要比cmp快。
  • reverse: 这个选项的值只能是True或者False,True表示对逆序排序,False表示正常的顺序排序。(正常的顺序:数字按升序,字符使用ascii排序)。

set方法

  • set方法的参数可以是list, dict, tuple等
  • set的返回值是有序的
  • set的返回值是唯一的。
1⃣️
spotty = (1, 4, 23, 78, 2, 11, 1, 89, 3)
>>> set(spotty)
set([1, 2, 3, 4, 11, 78, 23, 89])

2⃣️
 intel = {'core': 1997, 'dure':2008, 'i7': 2014}
>>> set(intel)
set(['core', 'dure', 'i7'])
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
np.random.seed(8) scores = np.random.randint(50, 100, size=(10, 5)) print(scores) result2 = scores[5, 2] print(f'学号为 105 的学生的英语成绩{result2}') result3 = scores[[0, 2, 5, 9], 0:3] print(result3) idx = np.where(scores >= 90) rows = idx[0] cols = idx[1] for rc in zip(rows, cols): data = scores[rc] print(f'rc = {rc}, data = {data}') number = set([100 + row for row in rows]) print(number) scores_1 = scores.copy() result5 = np.sort(scores_1, axis=0) print(f'按各门课程的成绩排序:\n{result5}') scores_2 = scores.copy() result6 = np.sort(scores_2, axis=1) print(f'按每名学生的成绩排序:\n{result6}') result7_mean = np.mean(scores, axis=0) result7_max = np.max(scores, axis=0) result7_min = np.min(scores, axis=0) print(f'每门课程的平均分:{result7_mean},最高分:{result7_max},最低分:{result7_min}') result8_max = np.max(scores, axis=1) result8_min = np.min(scores, axis=1) print(f'每名学生的最高分:{result8_max},最低分:{result8_min}') result_min = np.min(scores) idx = np.where(scores == result_min) rows = idx[0] cols = idx[1] for rc in zip(rows, cols): data = scores[rc] print(f'学生学号为 10{str(rc[0])},课程{course[rc[1]]}, 最低分为 {data}') result_max = np.max(scores) idx = np.where(scores == result_max) rows = idx[0] cols = idx[1] for rc in zip(rows, cols): data = scores[rc] print(f'学生学号为 10{str(rc[0])},课程{course[rc[1]]}, 最高分为 {data}') weight_list = [0.25, 0.25, 0.20, 0.15, 0.15] weight = np.array(weight_list) total_score = np.matmul(scores, weight) total_score = np.round(total_score, 2) print(f'每名学生的总成绩:\n{total_score}') print(type(total_score)) total_score1 = total_score.copy() result = sorted(total_score1, reverse=True) print(f'最高的 3 个总分:\n{result[:3]}')
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值