2022年 11月 5日

【Python基础】列表list的基本知识:定义,创建,增删改查,排序,生成式

【Python基础】列表list的基本知识:定义,创建,增删改查,排序,生成式

【目录】

1.什么是列表?

2.怎样创建列表(简单)

3.怎样创建列表(列表生成式)

4.获取列表中的单个元素

5.获取列表中的多个元素(切片操作)

6.增加列表元素

7.删除列表元素

8.修改列表元素

9.排序列表元素

10.判断列表元素是否存在,遍历列表元素

【内容】

1.什么是列表?

'''
变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素(不同类型也可以),程序可以方便地对这些数据进行整体操作
列表相当于其他语言中的数组
'''
'''
列表的特点:
        1.列表元素按顺序有序排序
        2.索引映射唯一一个数据
        3.列表可以存储重复的数据
        4.任意数据类型混存
        5.根据需要动态分配和回收内存
'''
a=10
# 变量存储的是一个对象的引用
lst=['hello','world',98]
# 存储了N个对象的引用
print(id(lst))
print(type(lst))
print(lst)

lst2=lst.copy()
print(id(lst2))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

2.怎样创建列表(简单)

'''
列表的创建:
1,使用中括号
2,调用内置函数list()
'''

lst=['hello','world',98,'hello']

print(lst[0])
print(lst[-4])

lst2=list(['hello','world',98])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.怎样创建列表(列表生成式)

'''
列表生成式:
         简称就是生成列表的一个公式
'''
lst = [i*i for i in range(1,10)]
print(lst)
'''
这边的i*i表示列表元素的表达式

注意事项:
       ”表示列表元素的表达式“种通常包含自定义变量
'''
'''
生成一个列表,列表中的元素是2,4,6,8,10
'''
lst1=[i*2 for i in range(1,6)]
print(lst1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.获取列表中的单个元素

'''
列表的查询操作:
      1,获取列表中指定索引
         index()
             1.如果列表中存在n个相同的元素,只返回相同元素中的第一个元素
             2.如果查询的元素在列表中不存在,则会抛出ValueError
             3.还可以在指定的start和stop中进行查找
      2,获取列表中的单个元素
         获取单个元素
             1.正向索引从0到N-1
             2.逆向索引从-N到-1
             3.指定索引不存在,抛出IndexError
'''

lst=['hello','world',98,'hello','world',234]
print(lst.index('hello'))
# 参照第一条
# print(lst.index('Python'))
# 参照第二条
print(lst.index('hello',1,4))
# 参照第三条

# 获取索引为2的元素
print(lst[2])
# 获取索引为-4的元素
print(lst[-4])
# 获取索引为10的元素呢
# print(lst[10])
# 会报错,索引超出范围
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

5.获取列表中的多个元素(切片操作)

'''
列表元素的查询操作
      获取列表中的多个元素:
      语法格式:
          列表名[start:stop:step]
      称为切片操作
          1.切片的结果:原列表片段的拷贝
          2.切片的范围,[start,stop]
          3.step默认为1,简写为[start,stop]
          4.step为正数:从start开始往后计算切片
              [:stop:step],切片的第一个元素默认从列表的第一个元素开始
              [start::step],切片的最后一个元素默认为列表的最后一个元素
          5.step为负数:从start开始往前计算切片
              [:stop:step],切片的第一个元素默认为列表的最后一个元素
              [start::step],切片的最后一个元素默认为列表的第一个元素
'''
lst=[10,20,30,40,50,60,70,80]
# print(lst[1:6:1])
print('切片的原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段',id(lst2))
print(lst[1:6])
# 默认步长为1
print(lst[1:6:])
# 同样默认为步长为1
print(lst[1:6:2])
# 步长设置为2
print(lst[:6:2])
# start不写,默认从开头开始,步长为2,知道索引为5停止
print(lst[1::2])
# stop不写,默认到最后一个元素,从索引为1开始,步长为2
print(lst[-1:-2:-1])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

6.增加列表元素

'''
列表元素的增加操作:
     1.append(), 在列表末尾添加一个元素
     2.extend(), 在列表的末尾至少添加一个元素
     3.insert(), 在列表的任意位置添加一个元素
     4.切片, 在列表的任意位置添加至少一个元素
'''
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))

lst2=['hello','world']

lst.append(lst2)
# 该添加方式是将lst2作为一个元素添加到了列表的末尾
print(lst)

lst.extend(lst2)
print(lst)
# 向列表的末尾一次性的添加多个元素

lst.insert(1,90)
print(lst)
# 在列表的任意位置添加一个元素

lst3=[True,False,'hello']
# 在任意位置上添加N多个元素
lst[1::]=lst3
print(lst)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

7.删除列表元素

'''
列表元素的删除操作:
    1.remove()
          1.一次删除一个元素
          2.重复的元素只删除第一个
          3.元素不存在则抛出ValueError
    2.pop()
          1.删除一个指定索引位置上的元素
          2.指定索引不存在则抛出IndexError
          3.不指定索引,默认删除列表中的最后一个元素
    3.切片
          1.一次至少删除一个元素
    4.clear()
          1.清空列表
    5.del
          1、删除列表
'''
# 示例1
lst1=[10,20,30,40,50,60,30]
lst1.remove(30)
print(lst1)
# 示例2
# lst1.remove(90)
# 报错ValueError: list.remove(x): x not in list
# 示例3
lst1.pop(1)
print(lst1)
# 示例4
# lst1.pop(6)
# IndexError: pop index out of range
# 示例5
lst1.pop()
# 不指定则会删除最后一个元素

'''切片:删除至少一个元素,将产生一个新的列表对象'''
lst=[10,40,50,60]
new_lst=lst[1:3]
print('原列表:',id(lst))
print('切片后的列表:',id(new_lst))

'''如何不产生新的列表对象,而是去删除列表中的内容'''
lst[1:3]=[]
print(lst)
# 用空列表替代原来列表中的一些元素

'''clear()'''
lst4=[10,20,30]
lst4.clear()
print(lst4)

# del lst4
# print(lst4)
# 列表已经被删除,这样写会报错:NameError: name 'lst4' is not defined
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

8.修改列表元素

'''
列表元素的修改操作:
    1.为指定索引的元素赋一个新值
    2,为指定的切片赋予一系列新值
'''
lst=[10,20,30,40]
lst[2]=100
print(lst)

lst[1:3]=[300,400,500,600]
print(lst)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

9.排序列表元素

'''
列表的排序操作
常见的有两种方式
'''
lst=[20,40,10,98,54]
print('排序前的列表:',lst,id(lst))
# 开始排序
'''
第一种方法,调用列表对象的sort方法,默认是升序排序
'''
lst.sort()
print('排序后的列表:',lst,id(lst))
'''
id()用来检查有没有生成新的列表对象,这里是没有生成的,排序是在原列表上进行的
'''
'''
通过指定关键字,可以使得列表中的元素降序排序
sort(reverse=True)表示降序,False表示升序
'''
lst.sort(reverse=True)
print('降序排序后的列表:',lst,id(lst))
lst.sort(reverse=False)
print('升序排序后的列表:',lst,id(lst))


'''
第二种方法
   使用内置函数sorted()对列表进行排序,将会产生一个新的列表对象
'''
lst=[20,40,10,98,54]
print('原列表:',lst,id(lst))
new_lst=sorted(lst)
print('新列表:',new_lst,id(new_lst))
'''
   同样可以指定关键字的参数,实现列表的一个降序排序
'''
new_lst=sorted(lst,reverse=True)
print('降序排序后的列表',new_lst,id(new_lst))
'''
sorted()内置函数使用时,是产生一个新的列表对象,而原列表不发生任何改变
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

10.判断列表元素是否存在,遍历列表元素

'''
列表的查询操:
  1,判断指定的元素在列表中是否存在
       元素 in 列表名
       元素 not in 列表名
  2,列表元素的遍历
       for 迭代变量 in 列表名:
             操作
  '''
print('p' in 'python')
# True
print('l' in 'python')
# False
lst=[10,20,'python','hello']
print(10 in lst)
# True
print(100 in lst)
# False
print(10 not in lst)
# False

for i in lst:
    # for in 中的in之后必须是可迭代的对象,我们现在已知的可以迭代的对象为字符串和列表
    print(i)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
【感谢】

感谢阅读,建议大家最好复制一下,自己跑一遍,可以记久一点,建议收藏噢~~~~