十二、列表(list)的初识和操作方法

1.列表的初识

  • why:int bool str

    • str:存储少量数据 ,如:'123 True 太白'

    • str:无论对其切片还是进行任何其他操作,获取的内容全部都是str的类型。存储的数据类型单一

  • what:list

    • l1 = [100,'alex',True,[1,2,3]] 承载任意数据类型,存储大量的数据

    • python常用的容器型数据类型。list 列表,其他语言:Java:数组

    • 列表是有序的,可索引、切片(步长) 

  

2.索引、切片(步长)

li = [100, '太白', True, [1, 2, 3]]
# 索引
print(li[0], type(li[0]))                 #100 <class 'int'>
print(li[1], type(li[1]))                 #太白 <class 'str'>
print(li[-1])                                #[1, 2, 3] <class 'list'>

# 切片 (顾头不顾腚)
print(li[:2]) #[100, '太白']

#相关练习题:
li = [1, 3, 2, "a", 4, "b", 5,"c"]
通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
l1 = li [:3]
print(l1)

通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
l2 = li [3:-2]
print(l2)

通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
l4 = li [1:-2:2]
print(l4)

通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
l6 = li [-3:0:-2]
print(l6)

3.列表的创建

  • 方式一:

l1 = [1, 2, 'Alex']

  • 方式二

l1 = list()
print(l1)
#结果:[],空列表的创建


l1 = list('fhdsjkafsdafhsdfhsdaf')       #将内容中的每个元素迭代放在列表当中
print(l1)
#结果:['f', 'h', 'd', 's', 'j', 'k', 'a', 'f', 's', 'd', 'a', 'f', 'h', 's', 'd', 'f', 'h', 's', 'd', 'a', 'f']

  • 方式三:列表推导式,后面讲

4.列表的增删改查

l1 = ['太白','女神','吴老师','肖帮主','yan']

(1)增

  • append:追加

   使用方法: l1.append('xx')

比如:

l1 = ['太白','女神','吴老师','肖帮主','yan']
l1.append('xx')
print(l1)
#结果['太白', '女神', '吴老师', '肖帮主', 'yan', 'xx']
#注意:不能打印 print(l1.append('xx')),是没有意义的

  • insert: 插入

      使用方法: l1.insert(位置,内容)

比如:

l1 = ['太白','女神','吴老师','肖帮主','yan']
l1.insert(2,'wusir')
print(l1)
#结果['太白', '女神', 'wusir', '吴老师', '肖帮主', 'yan']

  • extend 迭代着追加

   使用方法:l1.extend('内容',[内容],.....)

比如:

l1 = ['太白','女神','吴老师','肖帮主','yan']
l1.extend('abcd')
l1.extend(['alex',])
l1.extend(['alex', 1, 3])
print(l1)
#结果['太白', '女神', '吴老师', '肖帮主', 'yan', 'a', 'b', 'c', 'd', 'alex', 'alex', 1, 3]

(2)删:

  • pop :按照索引位置删除(返回的是删除的元素),默认删除最后一个

   使用方法:l1.pop(位置)

比如:

l1 = ['太白','女神','吴老师','肖帮主','yan']
l1.pop(-2)                             # 按照索引删除
print(l1)
#结果['太白', '女神', '吴老师', 'yan']

l1 = ['太白','女神','吴老师','肖帮主','yan']
print(l1.pop(-2))                    #返回的是删除的元素
#结果 肖帮主

l1.pop()                                 # 默认删除最后一个
print(l1)
#结果['太白', '女神', '吴老师', '肖帮主']

  • remove :按指定元素删除,如果有重名元素,默认从左数第一个删除

   使用方法:l1.remove('内容')

比如:

l1 = ['太白','女神','吴老师','肖帮主','yan']
l1.remove('吴老师')
print(l1)
#结果['太白', '女神', '肖帮主', 'yan']

#如果有重名元素
l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
l1.remove('吴老师')
print(l1)
#结果['太白', '女神', '吴老师', '肖帮主', 'yan']

  • clear :清空元素(了解)

   使用方法:l1.clear()

比如:

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
l1.clear()          # 清空
print(l1)
#结果[]

  • del:删除

(1)按索引删除:del l1[位置]

比如:

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
del l1[-1]
print(l1)
#结果['吴老师', '太白', '女神', '吴老师', '肖帮主']

(2)按切片(步长)

比如:

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
del l1[::2]
print(l1)
#结果['太白', '吴老师', 'yan']

(3)改:

  • 按索引改

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
l1[0] = '男神'
print(l1)
#结果['男神', '太白', '女神', '吴老师', '肖帮主', 'yan']

  • 按切片(了解)

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
l1[2:] = 'fsdafs'
print(l1)
#结果['吴老师', '太白', 'f', 's', 'd', 'a', 'f', 's']

  • 按切片(步长)(了解)

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
l1[::2] = 'abc'             #改的部分要和补充的数量需要对应
print(l1)
#结果['a', '太白', 'b', '吴老师', 'c', 'yan']

l1[::2] = 'abcd'
print(l1)                      #数量不对应,会报错

(4)查:

  • 按索引、按切片(步长)
  • for 循环

比如:

l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
for i in l1:
  print(i)
#结果
吴老师
太白
女神
吴老师
肖帮主
yan

练习:

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# 计算列表的长度并输出
count = 0
for i in li:
  count += 1
print(count)

# 列表中追加元素"seven",并输出添加后的列表
li.append('seven')
print(li)

# 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
li.insert(0,'Tony')
print(li)

# 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
li[1] = "Kelly"
print(li)

# 请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
li.extend([1,"a",3,4,"heart"])
print(li)

 

5.列表的补充

list补充:

  • count

  • index:通过元素找索引

  • sort(**):

    • 默认从小到大排序;

    • l1.sort(reverse = True) 从大到小

    • l1.reverse() 反转

  • 列表可相加

    列表可与数字相乘


# count
# index
l1 = ['太白', '123', '女神', '大壮']
print(l1.count('太白'))   #1
print(l1.index('123'))    #1

# sort **
#默认从小到大
l1 = [5, 4, 3, 7, 8, 6, 1, 9]
l1.sort()
print(l1)
#[1, 3, 4, 5, 6, 7, 8, 9]

#从大到小
l1 = [5, 4, 3, 7, 8, 6, 1, 9]
l1.sort(reverse=True)
print(l1)
#[9, 8, 7, 6, 5, 4, 3, 1]

l1 = [5, 4, 3, 7, 8, 6, 1, 9]
l1.reverse()
print(l1)
#反转
#[9, 1, 6, 8, 7, 3, 4, 5]

# 列表可以相加
l1 = [1, 2, 3]
l2 = [1, 2, 3, '太白', '123', '女神']
print(l1 + l2)
#[1, 2, 3, 1, 2, 3, '太白', '123', '女神']

#列表与数字相乘
l1 = [1, 'daf', 3]
l2 = l1*3
print(l2)
#[1, 'daf', 3, 1, 'daf', 3, 1, 'daf', 3]

6.列表的嵌套

l1 = [1, 2, 'taibai', [1, 'alex', 3,]]

# 1, 将l1中的'taibai'变成大写并放回原处。
l1[2] = 'TAIBAI'
l1[2] = l1[2].upper() #第二种方法
print(l1)

# 2,给小列表[1,'alex',3,]追加一个元素,'老男孩教育'。
l1[-1].append('老男孩教育')
print(l1)

# 3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'
a = l1[-1]
a[1] = a[1]+ 'sb '
print(l1)

l1[-1][1] = l1[-1][1] + 'sb'        #第二种方法
print(l1)

l1[-1][1] += 'sb'                      #第三种方法
print(l1)

原文地址:https://www.cnblogs.com/yangzm/p/10808762.html