python基础——列表

本文详细介绍了Python中列表的各类操作,包括添加元素(append、insert、extend)、删除元素(del、pop、remove、clear)、修改元素、查找元素(in、not in、index、count)、排序(sort、reverse)以及冒泡排序和列表推导式的用法,是学习Python列表操作的全面指南。
摘要由CSDN通过智能技术生成

一、添加元素

小结:

- append  在末尾添加元素
- insert  在指定位置插入元素
- extend  合并两个列表
append

append会把新元素添加到列表末尾

A = ['xiaoWang', 'xiaoZhang', 'xiaoHua']
temp = 'xiaofei'
A.append(temp)
print(A)  # ['xiaoWang', 'xiaoZhang', 'xiaoHua', 'xiaofei']
insert

insert(index, object) 在指定位置index前插入元素object

strs = ['a','b','m','s']
strs.insert(3,'h')
print(strs)  # ['a', 'b', 'm', 'h', 's']
extend

通过extend可以将另一个集合中的元素逐一添加到列表中

a = ['a','b','c']
b = ['d','e','f']
a.extend(b)
print(a)  # ['a', 'b', 'c', 'd', 'e', 'f'] 将 b 添加到 a 里
print(b) # ['d','e','f'] b的内容不变

二、删除元素

小结:

  • del:根据下标进行删除,下标超出范围报错:# IndexError

  • pop:删除最后一个元素,

  • remove:根据元素进行删除,只能删除第一个,多的不会删除

    不存在则报错,list.remove(x): x not in list

  • clear():清空列表元素

del
movieName = ['加勒比海盗', '骇客帝国', '速度与激情']
del movieName[1]
print(movieName)  # ['加勒比海盗', '速度与激情']
pop
a = [1, 2, 3, 4]
a.pop()
print(a)  # [1, 2, 3
remove
b = [3, 4, '小明', 5, 6]
b.remove('小明')
print(b)  # [3, 4, 5, 6]
clear
c = [3, 4, 5, 'xiaoming', 2]
c.clear()
print(c)  # []
删除多个元素的方法
方法一:
list = [2, 1, "酸奶", "酸奶", 1]
for i in list[::-1]:
    if i == "酸奶":
        list.remove(i)
print(list)

方法二:
list1=["酸奶",2,"abs",3,6,"酸奶"]
n=0
while n<len(list1):
    if list1[n]=="酸奶":
        list1.remove("酸奶")
    else:
        n+=1
print(list1)

方法三:
a=[]
for i in list:
    if i !='酸奶':
        a.append(i)
    list=a
print(list)

三、修改元素

通过下标来访问列表元素,修改元素时,直接赋值即可。

tanks = ['貂蝉', '瑶瑶', '张飞', '妲己', '小乔']
tanks[2] = '奶妈'
print(tanks)  # ['貂蝉', '瑶瑶', '奶妈', '妲己', '小乔']

四、查找元素

所谓的查找,就是看看指定的元素是否存在,以及查看元素所在的位置,主要包含一下几个方法:

  • in 和 not in
  • index 和 count
in, not in

python中查找的常用方法为:

  • in(存在),如果存在那么结果为true,否则为false
  • not in(不存在),如果不存在那么结果为true,否则false
    #待查找的列表
    nameList = ['关羽','张飞','刘备']

    #获取用户要查找的名字
    findName = input('请输入要查找的姓名:')

    #查找是否存在
    if findName in nameList:
        print('在列表中找到了相同的名字')
    else:
        print('没有找到')
index, count

index用来查找元素所在的位置,如果未找到则会报错;count用来计算某个元素出现的次数。它们的使用和字符串里的使用效果一致。

>>> a = ['a', 'b', 'c', 'a', 'b']
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list
>>> a.index('a', 1, 4)
3
>>> a.count('b')
2
>>> a.count('d')
0

五、排序

sort

sort方法是将list按特定顺序重新排列,默认为由小到大,

list = [1, 23, 5, 11, 9, 3, 6, 3]
list.sort()
print(list)  # [1, 3, 3, 5, 6, 9, 11, 23]

sort(reverse=True)可改为倒序,由大到小。

reverse
b = [1, 2, 3, 4]
b.sort(reverse=True)
print(b)  # [4, 3, 2, 1]

reverse方法是将list逆置。

a = [3, 5, 3, 8]
a.reverse()
print(a)  # [8, 3, 5, 3]

六、冒泡排序

  • 方法一
m = [9, 8, 7, 6, 4, 3, 5]
m.sort()
print(m)
  • 方法二
 - 疑问? 
 - 为啥    while i < len(m) - j:   这里是减 j
   而   for i in range(len(m) - 1 - j): 是 减j  减1
   
while中
j前面已经+1,所以j=1, 减j(1) 下面的m[i + 1]刚好取到最后一位

而for中,刚开始j是等于0的,如果不减1,下面的m[i]就取到最后一位了
m[i + 1]则超出索引范围
m = [9, 8, 7, 6, 4, 3, 5]
j = 0
while j < len(m) - 1:
    j += 1
    i = 0
    while i < len(m) - j:
        if m[i] > m[i + 1]:
            m[i], m[i + 1] = m[i + 1], m[i]
        i += 1
print(m)


for j in range(len(m) - 1):
    for i in range(len(m) - 1 - j):
        if m[i] > m[i + 1]:
            m[i], m[i + 1] = m[i + 1], m[i]
print(m)

七、列表推导式

x = []
for i in range(10):
    if i % 2 == 0:
        x.append(i)
print(x)

推导式

x = [i for i in range(10) if i % 2 == 0]
print(x)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值