python学习之列表的学习
学习过C的都知道数组,python中的列表list和C中的数组类似,可以说是一个加强版的数组。
列表的概念
- list中可以是任意类型,但是数组中元素只能是同一类型。
- list不用定义大小,直接使用,数组需要定义大小。
- list不仅支持正向索引(0,1…)还支持负索引(-1,-2),数组只支持正向索引,都是从0开始。
- list不仅支持下标访问,而且支持切片,数组不支持切片。
切片访问
-
格式:[start : end : step],step默认是1,即步长是1,start和end默认是0和最后一个元素下标,但是如果指定end,返回是不包括end位元素的。
a=[11,33,44,87,99] a[:] #返回所有元素 a[1:3] #返回 33 44
列表常用用法
列表运算
- +运算符:list1 + list2 列表拼接。
- *运算符:list1 * 2 列表重复。
- in:支持in操作,val in list返回True或者False。
- 支持迭代访问:for val in list : val遍历列表中每个元素。
列表方法
a = list(range(1,11)) # 获取一个列表,list是列表转换函数
a.append(val) # 末尾添加元素
a.insert(index,val) # index位置添加val,如果index大于list的len,就直接在末尾添加元素
a.extend([val1,val2,...]) # 批量在列表末尾添加元素
a.remove(val) #删除元素,有重复删除第一个元素,并且返回删除元素,没有返回None
a.pop(index) #默认删除最后一个元素,并返回该元素,如果指定index,删除index对应元素,并返回该元素。
a.count(val) # 返回val在list中的个数
a.reverse() # 反转列表
a.sort() # 默认从小到大排序,sort(reverse)添加reverse就是从大到小
a.clear() # 清空列表,返回一个空列表。
del list # 使用del关键字 删除内存中的list
a.copy() # 复制列表,返回复制的列表。
列表生成式
- 格式:[variable for variable in seq]。
- 支持 if 判断。
- 支持多重for循环。
a = [i*i for i in range(1,11)] # 生成一个列表
# 等同于
a = []
for i in range(1,11):
a.append(i * i)
a = [i*i for i in range(1,11) if i % 2 != 0]
#等同于
a = []
for i in range(1,11):
if i % 2 != 0:
a.append(i*i)
a = [m + n for m in "abc" for n in "xyz"]
# 等价于
a = []
for m in "abc":
for n in "xyz":
a.append(m + n)
使用列表生成式生成一个乘法表
a = [str(n) + '*' + str(m) + '=' + str(m*n) for m in range(1,10) for n in range(1,m + 1)]
#等价于
a = ["%s*%s=%s"%(n,m,m*n) for m in range(1,10) for n in range(1,m + 1)]
使用列表实现杨辉三角
#杨辉三角打印
a = []
for i in range(1,11):
if i==1:
print(1)
elif i == 2:
print(1,1)
a.append(1)
a.append(1)
else:
temp = a.copy() #拷贝list
a.clear()
a.append(1)
for x in range(1,i-2+1):
a.append(temp[x-1] + temp[x])
a.append(1)
for v in a:
print(v,end=" ")
print()
python学习笔记!