python数据类型【列表(list)】

python数据类型【列表(list)】


列表(list),是一个 有序且可变的容器,在里面可以存放多个不同类型的元素。

1.定义

data_list=[]
data_list=[1,2,3,4]

2.独有方法

字符串和列表的比较:

  • 字符串,不可变,即:创建好之后内部无法修改【都是创建一份数据】

    name='wxy'
    name.upper()
    #name值不变,name.upper()又创建一份数据
    
  • 列表,可变,即:创建好之后内部元素可以修改,【独有功能基本上都是直接操作列表内部,不会创建新的一份数据】

    num_list=[1,2]
    num_list.append(3)
    num_list  [1,2,3]
    

2.列表方法

  1. 追加,在原列表中追加值 append()
   data_list=[1,2]
   data_list.append(3)
   data_list  [1,2,3]
  1. 批量追加,将一个列表中的元素逐一添加另外一个列表 extend()
  data1_list=[1,2]
  data2_list=[3,4]
  data1_list.extend(data2_list)
  data_list  [1,2,3,4 ]
  1. 插入,在原列表的指定索引位置插入值 insert(索引,值)

      data_list=[1,2]
      data_list.insert(1,3)
      data_list  [1,3,2]
    
  2. 在原列表中根据值删除(从左到右找到第一个删除) remove()【慎用:里面没有删除的值会报错】

      data_list=[1,2,3]
      data_list.remove(2)
      data_list  [1,3]
    
  3. 在原列表中根据索引踢出某个元素(根据索引位置删除) pop(索引)

      data_list=[1,2,3]
      data_list.pop()   默认最后一个
      data_list  [1,2]
      
      data_list.pop(1)   
      data_list  [1,3]
    
  4. 清空原列表 clear()

      data_list=[1,2,3]
      data_list.clear()
      data_list  []
    
  5. 根据值获取索引(从左到右找到第一个元素) index(值) 【慎用:找不到报错】

      data_list=[1,2,3]
      index=data_list.index(3)
      index   2
      data_list [1,2,3]
    
  6. 列表元素排序 sort() 从小到大 sort(reverse=True)从大到小

      data_list=[102,24,0,4,6,1,2,3]
      data_list.sort()
      data_list     [0, 1, 2, 3, 4, 6, 24, 102]
      data_list.sort(reverse=True)
      data_list     [102, 24, 6, 4, 3, 2, 1, 0]
    

    注意:排序时内部元素无法进行比较时,程序会报错(尽量数据类型统一)

      data_list=['hello',24,0,'nihao']
      data_list.sort()
      
      报错:TypeError: '<' not supported between instances of 'int' and 'str'
    
  7. 反转原列表 reverse()

  data_list=[102,24,0,4,6,1,2,3]
  data_list.reverse()
  data_list     [3, 2, 1, 6, 4, 0, 24, 102]

3. 公共方法

  1. 相加,两个列表相加获取生成一个新的列表

    v1=[1,2]
    v2=[3,4]
    v3=v1+v2   [1,2,3,4]
    
  2. 相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表

    v1=[1,2]*2
    v1  [1,2,1,2]
    
  3. 运算符 in 包含

    由于列表内部是由多个元素组成,可以通过in 来判断元素是否在列表中

    #列表
    v1=[1,2,3,4]
    if 2 in v1:
    	print('yes')
    
    #字符串
    v2='1234'
    if 2 in v2:
    	print('yes')
    

    注意:列表检查元素是否存在时,是采用逐一比较的方式,效率会比较低

  4. 获取长度

    data_list=[1,2,3]
    len(data_list)   3
    
  5. 索引,一个元素的操作

    #读
    data_list=[1,2,34,5]
    data_list[2]  3
    
    #改
    data_list=[1,2,34,5]
    data_list[2]=100
    data_list   [1,2,1004,5]
    
    #删1  根据索引
    data_list=[1,2,34,5]
    del data_list[0]
    data_list=[2,34,5]
    
    #删2   根据值
    data_list=[1,2,34,5]
    data_list.remove(1)
    data_list=[2,34,5]
    

    注意:超出索引范围会报错

    提示:由于字符串是不可变类型,所以他只有索引读的功能, 列表是可变类型 可以读,改,删

  6. 切片,多个元素的操作(很少用)

    #读
    data_list=[1,2,3,4,5]
    data_list[0:3]  [1,2,3]
    
    #改
    data_list=[1,2,3,4,5]
    不用和修改的个数一样,自动全部放入,向前插入
    data_list[0:2]=[100,200,300,400]
    data_list   [100,200,300,400,34,5]
    
    data_list=[1,2,3,4,5]
    #从索引2开始放
    data_list[2:]=[100,200,300,400]
    data_list   [1,2,100,200,300,400]
    
    data_list=[1,2,3,4,5]
    #放在最后
    data_list[100:]=[100,200,300,400]
    data_list   [1,2,3,4,5,100,200,300,400]
    
    data_list=[1,2,3,4,5]
    #放在最前
    data_list[:0]=[100,200,300,400]
    data_list   [100, 200, 300, 400, 1, 2, 3, 4, 5]
    
    #删1
    data_list=[1,2,3,4,5]
    del data_list[0:3]
    data_list  [4,5]
    
  7. 步长

    data_list=[1,2,3,4,5]
    data_list[1:4:2]   [2,4]
    data_list[::2]    [1,3,5]
    data_list[4:1:-1]  [5,4,3]
    

    问题:给一个字符串实现字符串的翻转? 注意:字符串没有reverse()功能

    可以使用[ : :-1]进行翻转

  8. for 循环

    data_list=[1,2,3,4,5]
    for i in data_list:
    print(i)
    

4 转换

  • int,bool无法转换成列表

  • str

    name='wxy'
    list(name)   ['w','x','y']
    
  • 超前

    #元祖转列表
    v1=(1,2,3,4)
    v2=list(v1)  [1,2,3,4]
    
    #集合转列表
    v3={1,2,3,4}
    v4=list(v3)   [1,2,3,4]
    

5.嵌套

列表属于容器,内部可以存放各种数据,所以他也支持列表的嵌套

data=['wxy',[1,2],True]
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荼靡~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值