python学习之列表的学习

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学习笔记!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值