Python基础操作(三)(新手必看)超详细(列表操作专题)

列表操作

列表(list)
列表使用[]进行定义,里面的元素可以是不同的并且类型也可以是不同的
列表中可以存放多个元素,每个元素之间是以逗号进行分隔

list1 = [1,'a',True]
print(list1)  # [1, 'a', True]
print(type(list1))  # <class 'list'>

列表是可变数据类型

列表和字符串一样,都有索引,索引都是从0开始的
列表可以根据索引来取得列表中的元素

lst1 = ['python','java']
print(lst1[0])  # python
print(lst1[1])  # java

列表支持多变量赋值,要求变量数=列表的元素数量

lst1 = ['a','b']
word1,word2 = lst1
print(word1,word2)  # a b
print(word1)  # a
print(word1)  # b
lst2 = ['a','b','c']
word1,word2 = lst2
# print(word1)  # 报错
# print(word2)  # 报错

列表的序列解包:需要使用*

lst2 = ['a','b','c']
word1,*word2 = lst2
print(word1)  # a
print(word2)  # ['b', 'c']

lst3 = ['a','b','c']
*word1,word2 = lst3
print(word1)  # ['a', 'b']
print(word2)  # c

序列解包,不可以写多个

lst4 = ['a','b','c','d']
*word1,*word2 = lst4
print(word1)  # 语法错误
print(word2)  # 语法错误

列表的切片,切片操作和字符串的一样,但是返回的是列表

lst = [1,2,3,4,5]
print(lst[0:4:])  # [1, 2, 3, 4]
print(lst[::-1])  # [5, 4, 3, 2, 1]

len() 查看长度
列表的长度取决于列表中元素的个数

lst = [1,2,3,4,5]
print(len(lst))  # 5

列表的常用操作
1.列表增加操作
1.1 append() 追加:将指定元素追加到列表的末尾,改变的是原列表
注意:不会生成新列表(没有返回值),只能每次添加一个元素

lst1 = [1,2,3,4,'hello']
res = lst1.append('python')
print(res)  # None
print(lst1)  # [1, 2, 3, 4, 'hello', 'python']
# lst1.append('java','php','ui')
# print(lst1)  # 报错
lst1.append(['java','php','ui'])
print(lst1)  # [1, 2, 3, 4, 'hello', 'python', ['java', 'php', 'ui']]
print(lst1[6])  # ['java', 'php', 'ui']
print(lst1[6][0])  # java

1.2 extend() 添加
注意:此方法添加的元素必须是一个可迭代的对象
会将可迭代对象中的元素循环出来,append到列表中

lst = [1,2,3,4]
# lst.extend(5)
# print(lst)  # 报错
lst.extend('a')
print(lst)  # [1, 2, 3, 4, 'a']
lst.extend('hello')
print(lst)  # [1, 2, 3, 4, 'a', 'h', 'e', 'l', 'l', 'o']
lst.extend('0,9,8,7')
print(lst)  # [1, 2, 3, 4, 'a', 'h', 'e', 'l', 'l', 'o', '0', ',', '9', ',', '8', ',', '7']
lst.extend(['java','php','ui'])
print(lst)  # [1, 2, 3, 4, 'a', 'h', 'e', 'l', 'l', 'o', '0', ',', '9', ',', '8', ',', '7', 'java', 'php', 'ui']

1.3 insert() 插入:根据索引位置添加元素(可以将元素添加到指定位置之前)

insert('索引','要添加的元素')

如果索引超出了索引范围,会默认添加在尾部

lst = [1,2,3,4]
lst.insert(2,9)
print(lst)  # [1, 2, 9, 3, 4]
lst.insert(0,8)
print(lst)  # [8, 1, 2, 9, 3, 4]
lst.insert(10,6)
print(lst)  # [8, 1, 2, 9, 3, 4, 6]
lst = [1,2,3,4]
lst.insert(-1,100)
print(lst)  # [1, 2, 3, 100, 4]

2.删除方法
2.1 pop()方法 弹出:可以指定索引进行弹出
默认弹出列表最后一个元素
有返回值,返回值是弹出的元素

lst = [1,2,3,4,5]
res = lst.pop()
print(lst)  # [1, 2, 3, 4]
print(res)  # 5
lst = [1,2,3,4,5]
lst.pop(2)
print(lst)  # [1, 2, 4, 5]

2.2 remove() 删除:指定元素进行删除
remove()从左向右删除,如果删除的元素在列表中存在多个,删除第一个

lst = [1,2,3,4,5,6,7,8]
lst.remove(3)
print(lst)  # [1, 2, 4, 5, 6, 7, 8]
lst = [1,2,3,4,5,2,6,7,2,8]
lst.remove(2)
print(lst)  # [1, 3, 4, 5, 2, 6, 7, 2, 8]

如何删除全部的2
使用逻辑删除★
需要拷贝一份lst1

第一次:[1,3,2,4,5]
第二次:[1,3,4,5]

正确方法
法一:
lst1 = [1,2,3,2,4,5]
lst2 = lst1.copy()
for i in range(len(lst2)):
    if lst2[i] == 2:
        lst1.remove(lst2[i])
        # pass
print(lst1)  # [1, 3, 4, 5]

法二:
lst1 = [1,2,3,2,4,5]
for i in lst1:
    if i == 2:
        lst1.remove(i)
print(lst1)  # [1, 3, 4, 5]

2.3 del() 删除:是Python内置的
先获取元素,在进行删除

lst = [1,2,3,4]
del lst[1]
print(lst)  # [1, 3, 4]
lst = [1,2,3,4]
del lst  # 不是清空列表,是将内存中的列表删除掉了
print(lst)  # 报错(name error)

2.4 clear() 清空列表

lst = [1,2,3,4]
lst.clear()
print(lst)  # []:空列表

3.列表的修改
3.1 先取值再重新赋值

lst = [1,2,3,4]
lst[2] = 10
print(lst)  # [1, 2, 10, 4]

3.2 reverse() 倒叙(将列表中的元素倒叙输出)

lst = [1,0,9,6,8,2,5,3]
lst.reverse()  # 效果相当于 lst[::-1]
print(lst)  # [3, 5, 2, 8, 6, 9, 0, 1]

3.3 sort() 排序
不传参数,默认是正序排列(从小到大排列)
reverse=True,代表倒序输出(从大到小)

lst = [1,8,0,2,5,3,9,7,6]
lst.sort()
print(lst)  # [0, 1, 2, 3, 5, 6, 7, 8, 9]
lst.sort(reverse=True)  # 开启倒叙
print(lst)  # [9, 8, 7, 6, 5, 3, 2, 1, 0]

4.列表的查找操作
4.1 count() 统计:统计元素在列表中出现的次数
返回值是元素出现的次数

lst = [1,2,3,4,5,5,6,6,5]
res = lst.count(5)
print(res)  # 3

4.2 index() 查找:从左向右查找

返回值是查找到的索引值
如果没有找到,报错
如果查找的元素存在多个,返回第一个找到的元素的索引

列表推导式
1.1 需求:循环出10个数,将其放到一个列表中

**正常循环法**:
lst = []
for i in range(10):
    lst.append(i)
    # print(i)
print(lst)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

简单的列表推导式(只有for循环)

lst = [i for i in range(10)]  # 前面i为加入的内容,后面为循环
print(lst)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1.2 需求:求出1-10之间的偶数,并将其放到一个列表中
正常逻辑:

lst = []
for i in range(1,11):
    if i % 2 == 0 :
        lst.append(i)
print(lst)  # [2, 4, 6, 8, 10]

带有条件的列表推导式

lst = [i for i in range(1,11)  if i % 2 == 0]
print(lst)   # [2, 4, 6, 8, 10]

列表推导式
推导式是Python中独有的一种特性,可以构建一个新的另外数据的序列

格式: [表达式 for 临时变量 in 列表]
lst = [1,2,3,4]
lst1 = []
for i in lst:
    lst1.append(i**2)
print(lst1)  # [1, 4, 9, 16]

列表推导式表达

new_lst = [i**2 for i in lst]
print(new_lst)  # [1, 4, 9, 16]

有判断条件的推导式
输出列表中的奇数

lst = [1,2,3,4]
new_lst1 = [i for i in lst if i % 2 == 1]
print(new_lst1)  # [1, 3]

求列表中大于2的所有偶数的2次方 — 列表推导式

lst2 = [1,2,3,4,5,6,7,8]
new_lst3 = [i**2 for i in lst2 if i % 2 == 0 and i > 2]
print(new_lst3)  # [16, 36, 64]

将二维列表lst3变为一维列表

lst3 = [[1,2,3],[4,5,6],[7,8,9]]
new_lst4 = [j for i in lst3 for j in i]
print(new_lst4)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

需求:求1-8之间的偶数与2-9之间的都偶数的差值,放到一个列表中

new_lst5 = [i - j for i in range(1,9) for j in range (2,10) if i % 2 ==0 and j % 2 == 0]
print(new_lst5)  # [0, -2, -4, -6, 2, 0, -2, -4, 4, 2, 0, -2, 6, 4, 2, 0]
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值