老方学python | 疯狂的list

List是一种最常用的数据结构,在老方学习Python的过程中,发现事情变得有些疯狂。

以下是整理出了俺观察到的不异常之处。对于从其他语言转向python的同学来说,认识和掌握这些用法是必须的。老方甚至认为,疯狂的list,可归为python成为AI第一编程语言的理由之一。

切片(slice)很灵活

a = [1,2,3,4,5]

  • 取单个元素
    取第2个,a[2];
  • 切片
    取2个元素,a[:2]
    每隔2个取1个;a[::2]
    相当于列表元素的选取,除了传统(比如C、JAVA)位置下标,可以用[start:end:step]表达式来完成。
  • 倒数
    取倒数第1个,a[-1]
    取倒数第1、2个,a[-2:]
  • 位置交换
    a[0],a[1]=a[1],a[0]

元素增减古怪

  • 删除元素
    del a[0]

实在不懂这个del关键字,类似python早期版本的print么?函数不象函数,更象是汇编语言中的指令

  • 添加元素
    a.append(11)
  • 插入元素
    a.insert(0,-1)

初始化很快

  • 元素个数
    len(a)

  • 快速初始化
    a = list(range(10))--> [0,1,2,3,4,5,6,7,8,9]
    a = [range(10)] --> [0,1,2,3,4,5,6,7,8,9]
    a = [1 for x in range(10)] --> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    a = [x%2 for x in range(10)] --> [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

  • 多维数据的初始化
    a = [[x for x in range(10)] for y in range(3)] -->[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]


以下纯属笔记

操作符的优先级,**

print()的两个不常用参数
input()返回的类型是字符串

函数的入参,

单独的*号,其后须加参数名传入
**表示可以参入元组?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容