【Python】数据结构(列表)

首先一个小知识:

     a.print("num的类型是:",type(num))   #获取num的类型,用到type()函数

     b.print("num的内存地址是:",id(num))  #获取num的地址,用到id()函数

一.最基本的数据结构是序列(列表,元组等)

     在序列中的每个元素被分配一个序号,即元素的位置,也称为索引。序列用来存储一系列的数据

二.列表

1. 列表:⽤于存储任意数⽬、任意类型的数据集合,可以动态增删元素。

        列表的标准语法格式:a = [10,20,30,40]

2.创建列表的方式:

          a.使用方括号[ ]创建列表      
          
name = ['Alice','Bob']
print("name:",name)
          b.list( )方法创建列表
 
name = list("Charlie")
print("name:",name)
          c. range()创建整数列表
   语法格式为:range([start,] end [,step])
   start参数:可选,表示起始数字。默认是0
   end参数:必选,表示结尾数字。
   step参数:可选,表示步⻓,默认为1
numbers = list(range(1,11,2))  #创建一个从1~11(不包含11)的列表,步长为2
print("numbers:",numbers)

运行结果如下图:

        d.推导式生成列表

      格式:[<表达式> for <变量> in <可迭代对象> if <条件>]

      表达式:生成元素的表达式

      变量:循环变量,表示可迭代对象中的每个元素

      可迭代对象:可以是列表、元组、字符串、字典等

      条件:可选,表示循环条件,只有满足条件的元素才会被生成

      推导式的执行顺序:先循环可迭代对象,再判断条件,满足条件的元素才会被生成(先中间->后面->前面

num = [i*10 for i in range(1,10) if i % 2 !=0] #先遍历从1~9的数,再判断if后的条 
                                                # 件,最后执行i*10

运行结果如下图:

3.列表元素的增加:

      a.append()方法:(是在原对象上修改,速度最快)

list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
newlist1 = list1.append(6) #在列表list1的末尾添加一个元素6

       b.insert()方法:(涉及⼤量元素时,尽量避免使⽤)

list1 = [1,2,3,4,5]
newlist1 = list1.insert(0,0) #在list1列表的第0个位置插入0元素

      c.extend()方法:(是在原对象上修改,推荐使用)

list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
list1.extend(list2)  #将list2中的元素添加到list1中

      d.+运算符:(不是在原对象上进行修改,内存地址发生改变,对于操作⼤量元素不建议使⽤)

list1 = [6,7,8,9,10]
list2 = list1 + [11]  #将元素11加在list1列表尾部

运行结果如下图:

     e.* 运算符:(不是在原对象上进行修改)

list1 = [1,2,3,4,5]
list1 = list1 * 2  #重复list1中的元素两次

运算结果如下图:

4.列表元素的删除

   a.使用del语句进行删除:

list1 = [1,2,3,4,5]
del list1[2]    #删除索引为2的元素,即元素位置为2的元素
print(list1)

运行结果如下图:

  b.使用pop( )语句

list1 = [1,2,3,4,5]
num = list1.pop(2)  #删除索引为2的元素,并返回删除的元素
num1 = list1.pop()   #删除最后一个元素,并返回删除的元素
print(list1,num)

运行结果如下图:

  c.使用remove( )方法:

list1 = [1,2,3,4,5]
num2 = list1.remove(3)  #删除值为3的元素
print(list1)
num3 = list1.remove(20) #不存在该元素,会保错

运行结果如下图:

  d.使用clear( )方法:

list1 = [1,2,3,4,5]
list1.clear()  #清空列表
print(list1)

5.列表元素访问和计数

   a.通过索引直接访问元素

  b.index()获得指定元素在列表中⾸次出现的索引

语法是: index(value,[start,[end]])
value :要找的元素 ,必填
start: 开始查找的索引,默认为0
end :结束查找的索引,默认为列表长度
   c. count()获得指定元素在列表中出现的次数
   d.len( )返回列表长度
  
   e. 成员资格判断in和not in

6.列表切⽚操作

标准格式为:[起始偏移量start:终⽌偏移量end[:步⻓step]]

list1 = [1,2,3,4,5]
newlist1 = list1[:]  #复制整个列表
print(newlist1)
 
newlist2 = list1[3:]  #从索引为3的元素开始复制到结尾
print(newlist2)

newlist3 = list1[:3]  #从索引为0的元素开始复制到索引为2的元素(不包括索引为3的元素)
print(newlist3)


newlist4 = list1[1:3]  #从索引为1的元素开始复制到索引为2的元素(不包括索引为3的元素)
print(newlist4)


newlist5 = list1[1:4:2] 从索引为1的元素开始复制到索引为4的元素(步长为2)
print(newlist5)

运行结果如下图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值