1. zip()
    实例:列表中每个列表元素记录个人的各科成绩,要求计算各科平均成绩
    n个科目,m个学生
    学生A:89 90 78 93 80
    学生B:90 91 85 88 86
    学生C:91 92 83 89 90.5
m, n = map(int, input().split())
scores = []
for i in range(m):scores.append(list(map(eval, input().split())))
for i in zip(*scores):print(sum(i)/m)
>>> a = [[1,2,3], [4,5,6], [7,8,9]]
>>> for i in zip(*a):print(i)(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
>>> print(*a)
[1, 2, 3] [4, 5, 6] [7, 8, 9]
  1. sorted()——排序

    实例:重量排序
    海豚 228kg
    北极熊 0.75t
    企鹅 35kg
    海豹 0.35t
    白鲸 1.35t

>>> ls
[['海豚', '228kg'], ['北极熊', '0.75t'], ['企鹅', '35kg'], ['海豹', '0.35t'], ['白鲸', '1.35t']]
>>> print(sorted(ls, key = lambda d:eval(d[1][:-1])*1000 if d[1][-1] == 't' else eval(d[1][:-2])))[['企鹅', '35kg'], ['海豚', '228kg'], ['海豹', '0.35t'], ['北极熊', '0.75t'], ['白鲸', '1.35t']]
  1. 切片vs方法replace
    数据脱敏的应用中,replace方法是靠不住的,因为repalce中的参数1,可能出现在原字符串任何位置,这时采用切片拼接的方法较为合适

  2. 列表尾部添加

>>> ls = list(range(100,60,-10))
>>> ls
[100, 90, 80, 70]
>>> ls[len(ls):] = 'abc'
>>> ls
[100, 90, 80, 70, 'a', 'b', 'c']
  1. enumerate列表推导标号
>>> ls = 'MOLLY'
>>> [(i,s) for i,s in enumerate(ls)]
[(0, 'M'), (1, 'O'), (2, 'L'), (3, 'L'), (4, 'Y')]
  1. 列表推导

    1. 实现平铺
    >>> ls = [[1,2,3], [4,5,6], [7,8,9]]
    >>> [b for a in ls for b in a]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    1. 过滤元素
    >>> import random
    >>> ls = [random.randint(-10,10) for i in range(10)]
    >>> ls
    [10, -1, -6, 10, -5, 0, 3, 5, -6, 9]
    >>> [x for x in ls if x > 0]
    [10, 10, 3, 5, 9]
    
    1. 矩阵转置
    >>> matrix = [[1,2,3,4], [5,6,7,8], [9,10,11,12]]
    >>> [[row[i] for row in matrix] for i in range(4)]
    [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
    

    或使用zip和list实现

    >>> list(zip(*matrix))
    [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
    

    或变为纯列表元素

    >>> list(list(x) for x in zip(*a))
    [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
    
    1. 列表推导中可以使用函数或复杂表达式
  2. 元组的访问和处理速度比列表更快,可用作字典的键,而列表不可以。

  3. 字典序列解包

>>> def demo(a, b, c, d):print(a, b, c, d)
>>> demo(**{'a':1, 'c':3}, **{'b':2, 'd':4})
1 2 3 4
>>> {'x':1, **{'y':2}}
{'x': 1, 'y': 2}
  1. 生成器推导式
    当生成器对象所有元素访问完毕后,如果需要重新访问其中的元素,必须重新创建该生成器对象。
>>> g = ((i+2)**2 for i in range(10))
>>> g
<generator object <genexpr> at 0x10301f510>
>>> tuple(g)
(4, 9, 16, 25, 36, 49, 64, 81, 100, 121)
>>> list(g) # 元素已遍历结束
[]
>>> g = ((i+2)**2 for i in range(10))
>>> list(g)
[4, 9, 16, 25, 36, 49, 64, 81, 100, 121]
>>> g = ((i+2)**2 for i in range(10))
>>> g.__next__() # 单步迭代
4
>>> g.__next__()
9
>>> g.__next__()
16
>>> g.__next__()
25
>>> g.__next__()
36
>>> g.__next__()
49
>>> g.__next__()
64
>>> g.__next__()
81
>>> g.__next__()
100
>>> g.__next__()
121
>>> g.__next__()
Traceback (most recent call last):File "<pyshell#37>", line 1, in <module>g.__next__()
StopIteration
>>> g = ((i+2)**2 for i in range(10))
>>> for i in g: # 直接循环迭代print(i, end=' ')4 9 16 25 36 49 64 81 100 121

2.语法特性(组合数据类型)相关推荐

  1. python的基础语法(组合数据类型)

    目录 python的基础语法(组合数据类型) 一,list列表 1 什么是列表? 2 列表怎么声明? 3 列表的操作 二,tuple元组 1. 什么是元组|元组的特点 2. 元组的声明 3. 元组的操 ...

  2. python语言中不属于组合数据类型的是_python的基本语法(组合数据类型),基础...

    python的基础语法(组合数据类型) 一,list列表 python 语言中使用组合数据类型进行操作, 最常见的组合数据类型之一~就是 list 列表. 1 什么是列表? 列表是 组合数据类型 中的 ...

  3. python组合类型有哪三种_Python基础语法三组合数据类型

    一.列表(Lists) 列表属于Python中的序列类型,它是任意对象的有序集合,通过 " 位置 "或者 " 索引 " 访问其中的元素,它具有可变对象.可变长度 ...

  4. Python组合数据类型:容器类型总览,(不)可变数据类型immutable、(不)可迭代对象iterable、迭代器iterator、生成器generator、语法糖

    一.组合数据类型container objects 组合数据类型container objects:能够表示多个数据的类型 集合类型:集合类型是一个元素集合,元素无序不重不变 序列类型:序列类型是一个 ...

  5. Python程序设计语言基础06(完):组合数据类型

    目录 1. 组合数据类型概述 2. 集合类型及操作 2.1 集合类型定义 2.1.1 集合类型概念 2.1.2 集合类型定义 2.2 集合操作符 2.3 集合处理方法 2.4 集合类型应用场景 2. ...

  6. python123组合数据类型_Python的组合数据类型-字典

    字典 字典 ( dictionary ) 采用 0 个或多个键值对(key-value)的形式存储数据.Python 对 key 进行哈希函数运算,根据计算的结果决定 value 的存储地址,所以是无 ...

  7. Python初级学习教程—从入门开始学习(函数、组合数据类型、文件操作、异常、模块)

    文章目录 入门 一.数据的相关操作 二.continue 和 break的区别(易混点) 三.函数 变量的作用域 三.函数进阶 1.函数多个返回值 2.函数参数种类 3.匿名函数 组合数据类型 一.列 ...

  8. 计算机的分类及组合,第六章:组合数据类型

    A.组合数据类型概述 计算机不仅对单个变量表示的数据进行处理,更多情况,计算机需要对一组数据进行批量处理.例: 给定一组单词{python, data, function, list, loop},计 ...

  9. python中s和t是两个集合、对s|t描述正确的是_全国计算机等级考试二级教程--python语言程序设计(2018年版)第六章:组合数据类型...

    声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 一.组合数据类型的基本概念: Python语 ...

  10. c++ 14新的语法特性之返回类型推导

    c++ 14新的语法特性之返回类型推导 一.返回类型推导 返回类型推导 即编译器会在运行期间,推导出该函数方法的返回类型,不过应该也会存在问题,比如返回类型不同的时候,所以这个特性 还是谨慎使用比较好 ...

最新文章

  1. F5发布最新文件虚拟化存储产品ARX 4000
  2. gpu的单位表示_GPU编程1--GPU中的基本概念
  3. ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查
  4. 操作篇 了解学习NAT实验(关于静态NAT、动态NAT、EasyIP、端口映射的配置方法))
  5. SI4463模块配合WDS的快速上手指南
  6. SpringBoot 2.x ShardingSphere分库分表实战
  7. 学习结构[记录]类型(7) - 结构也可以有构造函数
  8. mysql 5.7.14-winx64_mysql-5.7.14-winx64 解压版本安装
  9. 纳什叫上林书豪,投了一家AI篮球训练公司
  10. SQL Server数据库表锁定原理以及如何解除表的锁定
  11. 整理了 40 多套 Java 完整实战项目,各个精品!
  12. LNMP一键安装的卸载
  13. Openg图像缓存及显存布局
  14. 编写js代码,点击相应的按钮使得网页背景颜色发生改变
  15. 枪花--DON'T CRY
  16. The project uses Gradle 4.1 which is incompatible with Java 11 or newer
  17. 玩转HTML(004)
  18. Linux /dev/mapper/ubuntu--vg-ubuntu--lv 磁盘空间不足的问题
  19. 【CSS】下划线与文字间距,下划线粗细以及下划线颜色的设置
  20. Python基础 编写项目 学生管理系统

热门文章

  1. 深入浅出filament Android编译脚本
  2. 报错libpng warning: iCCP: cHRM chunk does not match sRGB
  3. 备份数据库、恢复数据库
  4. Unity中Scale详解
  5. Pytorch ModuleNotFoundError: No module named ‘models‘
  6. 移动端与PC端设计的几项要点
  7. win7自带IE浏览器图标如何删除
  8. Docker 制作带有中文字体的镜像
  9. PS CS6视频剪辑基本技巧(五)添加logo、动画和画中画
  10. 【编译原理】LR语法分析器的设计与实现