python基础【3】——python数据类型之列表和元组

列表和元组

一、列表

  1. 定义:列表是使用最频繁的数据类型之一,其内部的元素可以是任意类型的,元素与元素之间没有关联关系,只有先后顺序。用中括号[],将元素括起来,元素与元素之间用逗号隔开。

  2. 常见操作:下表取值、切片操作、修改元素的值

    注意:列表切片步长大于1时,切出的块数必须与给定可迭代对象的长度相等

  3. 序列中常用内建函数

1.len() #获取字符串、元组、集合、字典里面的元素的个数
>>> li = [1,2,3]
>>> len(li)     #3
2.max(li) #返回序列中最大元素
3.min(li) #最小元素
4.li = list() #生成一个空列表
  1. 列表的方法
    • 增:append() insert() extend()
    • 删:pop() remove() clear()
    • 查:index() count()
    • 改:通过下标修改值
    • 其他:copy() reverse() sort()
#添加元素的方法
li = [1,2,3]
li.append(4)#append() 追加 在列表尾部添加元素
print(li)#[1, 2, 3, 4]
li.insert(0,5)#insert(index,obj) 插入 可以指定插入的位置和要插入的数据 没有返回值
print(li)#[5, 1, 2, 3, 4]
li.extend([6,7,8])#extend() 一次性在列表的尾部插入多个元素
print(li)#[5, 1, 2, 3, 4, 6, 7, 8]
#删除元素的方法
#[5, 1, 2, 3, 4, 6, 7, 8]
li.pop(3)   #pop() 根据下标删除指定位置的元素,默认删除最后一个(类似出栈)
print(li)   #[5, 1, 2, 4, 6, 7, 8]
li.pop()    #删除最后一个元素
print(li)   #[5, 1, 2, 4, 6, 7]
li.remove(7) #remove() 删除指定的元素,如果元素不存在会报错
print(li)   #[5, 1, 2, 4, 6]
li.clear()#clear() 清空列表
print(li)#[]
#列表查找的方法
#index:根据元素查找对应的下标,如果找不到对应的元素,就会报错
li = [1,2,3,11,22,33,1,2]
res = li.index(22)#无法同时返回两个下标,每次只能返回第一次出现
print(res)
#count:查找某个元素在列表中出现的次数
res2 = li.count(1)
print(res2)
#列表中修改元素值的方法
由于列表是可变的数据类型,可以通过索引赋值改变列表中的元素
li = [1,2,3,11,22,33,1,2]
li[3] = 2#通过下标获取到列表中对应的元素,重新进行赋值
print(li)
#列表中的其他三种方法
L.sort() 将列表中的元素进行排序,默认按升序reverse = False可以省略不写,reverse = True 为降序
li = [5,3,7,1,9,2,4]
li.sort()           #从小到大进行排序
li.sort(reverse = True) #从大到小进行排序
print(li)           #[1, 2, 3, 4, 5, 7, 9]
print(li.sort())    #None
注意:只有全部是数值时候才能进行排序,返回值是none,没有返回值
#L.reverse() 列表的反转,用来改变原列表的先后顺序
li.reverse()        
print(li)       #[9, 7, 5, 4, 3, 2, 1]
#L.copy() 复制此列表(只能复制内容,不会复制深层对象)
li_3 = li_0.copy()  
print(id(li_3))     #1642949475272 li_3的内存地址和li_0是不一样的,会重新申请一个内存地址
  • L.insert(index, obj) 将某个元素插入指定位置
  • L.append(x) 在列表中追加一个元素
  • L.extend(L1) 在列表中追加另一个列表,或可迭代对象,并将其元素迭代性的添加在L中 #[1, 1, 3, [...]]
  • L.remove(x) 从列表中删除第一次出现在列表中对应的元素

  • L.pop(index) 删除索引对应的元素,如果不加索引,则默认删除最后一个元素,通过该方式删除的元素可以绑定给一个变量,作为值处理
  • L.clear() 清空列表 等同于L[:] = []
  • L.index(v, start, stop) :返回对应元素的索引下标,如值不存在时触发ValueError错误,当查找的值在列表中重复时,返回第一次出现的值对应的下标
  • L.count(x) 返回列表中某个元素出现的次数
  • 1583568532225

二、元组

  1. 表示方法:
    用小括号() 括起来,单个元素用括号括起来后加逗号,多个元素之间用逗号隔开即可

    tu = (1) print(type(tu))     #<class 'int'>
    tu1 = (1,)   print(type(tu1))    #<class 'tuple'>
  2. 创建元组
    创建空元组:t = ()
    创建非空元组:可以使用构造函数tuple()

    1 tu = (1)   print(type(tu))     #<class 'int'> 是赋值操作
    2 tu1 = 1    #不是元组   
    3 t = 1,2,3 #(1,2,3)是元组
    4 t = (10,) print(type(tu1)) #<class 'tuple'>
    5 t = (1,2,3) #元组
    6 t = (1,2,[1,2,3]) #元组
    7 t = tuple() #等同于 t = ()创建一个空列表 
    8 t = tuple(iterable) 用可迭代对象生成一个元组
    t = tuple('python')  #('p', 'y', 't', 'h', 'o', 'n')
    t = tuple([1,2,3])       #(1, 2, 3)
    t = tuple(1,2,3)         #错误示例 不是可迭代对象
  3. 元组的运算使用规则、索引、切片规则等同于列表

    t.index(x) 查找元素的对应下标,不存在触发ValueError
    t.count(x) 返回元组中对应元素放入个数序列内建函数同样适用于元组
    sorted(iterable, reverse=False) 对可迭代对象排序

+=  *  *=  >  < ==  !=
len()  max() min()  sum() any() all() 
reversed(obj) 返回反向顺序的迭代器对象,要展示内容则须通过for循环实现
in / not in
t = (1,2,'python')
t [2][3] #'h'
t[2] = 'a'  # 错误:元组为不可变数据类型,不能索引赋值
  1. 元组的遍历
for i in 元组:
    语句块1
else:
    语句块2    
  1. 证明元组是不可变类型
>>> tu = (1,2,3)
>>> print(id(tu))   #2434786767480
>>> tu = tu+(11,22,33)
>>> print(id(tu))   #2434786356392

猜你喜欢

转载自www.cnblogs.com/saiminhou/p/12435285.html