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()返回的类型是字符串
函数的入参,
单独的*号,其后须加参数名传入
**表示可以参入元组?