Python列表常用方法详解与嵌套应用

雨后青山
雨后青山
发布时间:2026-10-16 | 4人浏览过
原创

本文详细介绍Python中列表的常用操作方法,包括查找下标、统计次数、获取长度、判断存在性以及增删改查等核心功能。同时讲解列表嵌套的使用场景,如表示矩阵,并通过代码示例演示随机列表生成、直角三角形打印及红包算法实现,帮助读者掌握列表的高级应用技巧。

列表更多的方法

  • 使用index()方法可以返回指定数据在列表中所在的位置下标。需要注意的是,如果查找的数据不存在于列表中,程序将会报错。
  • 使用count()方法可以统计指定数据在当前列表中出现的总次数。
  • 使用len()方法可以访问列表的长度,也就是列表中数据元素的个数。
  • 使用in关键字可以判断指定数据是否存在于某个列表序列中,如果存在则返回True,否则返回False。
  • 使用not in关键字可以判断指定数据是否不存在于某个列表序列中,如果确实不在列表中则返回True,否则返回False。
  • 使用append()方法可以在列表的结尾追加单个数据。
  • 使用extend()方法可以在列表的结尾追加数据,如果追加的数据本身是一个序列(如另一个列表),则会将该序列中的数据逐一添加到当前列表末尾。
  • 使用insert()方法可以在指定的位置新增数据,原有数据会自动向后移动。
  • 使用pop()方法可以删除指定下标的数据,默认删除最后一个元素,并且该方法会返回被删除的数据。
  • 使用remove()方法可以移除列表中某个数据的第一个匹配项,仅删除第一次出现的目标值。
  • 使用clear()方法可以清空列表中的所有元素,使列表变为空列表。
  • 逆置操作使用reverse()方法,用于将列表中的元素顺序反转。
  • 排序操作使用sort()方法,用于对列表中的元素进行排序,支持升序和降序设置。
  • copy()
def generateRandomList(a, b, n, random_state):
    from random import randint, seed
    seed(random_state)
    ls = []
    for i in range(n):
        ls.append(randint(a, b))
    return ls
ls = generateRandomList(0, 100, 10, 666)
print(ls)  # [58, 48, 55, 36, 64, 1, 70, 70, 99, 91]
# index():返回指定数据所在位置的下标 (注意:如果查找的数据不存在则报错。)。
print(ls.index(55)) # 2
print(ls.index(70)) # 6
print(ls.index(70, 7, 9)) # 7
# print(ls.index(101)) ValueError: 101 is not in list
# - count():统计指定数据在当前列表中出现的次数。
print(ls.count(70)) # 2
print(ls.count(58)) # 1
print(ls.count(666)) # 0
# - len():访问列表⻓度,即列表中数据的个数。 len还可以使用在字符串/元组/字典等数据中
print(len(ls))
# 使用len进行列表遍历
for i in range(len(ls)):
    print(ls[i])
for x in ls:
    print(x)
# 自己实现index方法
def my_index(ls, val):
    for i in range(len(ls)):
        if ls[i] == val:
            return i
    return -1
print("myindex = ", my_index(ls, 70))
print("myindex = ", my_index(ls, 101))
# - in:判断指定数据在某个列表序列,如果在返回True,否则返回False
#- not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False
print(69 in ls)
print(70 in ls)
print(70 not in ls)
print(69 not in ls)

#- append():列表结尾追加数据。
#- extend():列表结尾追加数据,如果数据是⼀个序列,则将这个序列的数据逐⼀添加到列表。
# insert():指定位置新增数据。
hero_ls = []
hero_ls.append("鲁班七号")
hero_ls.append("妲己")
hero_ls.append(123)
print(hero_ls)
hero_ls.insert(1, "校领导")
hero_ls.insert(1, "校领导夫人")
print(hero_ls)
hero_ls.extend("BBQ")
print(hero_ls)
hero_ls.extend(['瑶', '暃'])
hero_ls.extend(['123'])
print(hero_ls)
#- pop():删除指定下标的数据(默认为最后⼀个),并返回该数据。
#- remove():移除列表中某个数据的第⼀个匹配项。
#- clear():清空列表
print(hero_ls.pop())
print(hero_ls.pop())
print(hero_ls.pop(1))
print(hero_ls)
hero_ls.remove('妲己')
print(hero_ls)
hero_ls.clear()
print(hero_ls)
# del hero_ls
# print(hero_ls)
# - 逆置:reverse()
lss = [1, 2, 3, 4, 5]
lss.reverse()
print(lss)
# - 排序:sort()
print(ls)
ls.sort()
print(ls)
ls.sort(reverse=True)
print(ls)
# - copy()
nls = lss.copy()
print(nls)
print(nls)

列表的嵌套

列表中还可以包含其他列表,这种结构可以表示数学中的矩阵,便于处理多维数据。

name_list = [['⼩明', '⼩红', '⼩绿'],
             ['Tom', 'Lily', 'Rose'],
             ['张三', '李四', '王五']]
print(name_list[1])
print(name_list[1][0])

练习

# 设计一个函数, 生成 n 行的 直角三角形 **, 存储到列表中返回
def generate(n):
    total_ls = []
    for i in range(n):
        ls = []
        for j in range(i+1):
            ls.append('* ')
        total_ls.append(ls)
    return total_ls
print(generate(6))
for row in generate(6):
    for v in row:
        print(v, end='')
    print()
## 设计一个发等额红包的函数
def send1(money, count):
    money*=100 #分
    m = money//count  # 每一份的金额
    l = money%count
    bag = []
    for i in range(count-1):
        bag.append(m/100)
    if l == 0:
        bag.append(m/100)
    else:
        bag.append((m+l)/100)
    return bag
print(send1(100, 3))
## 设计一个发手气红包的函数
def send2(money, count):
    money *= 100  # 分
    from random import randint
    bag = []
    for i in range(count - 1):
        m = money // count
        cur = 2*randint(0, m-1)
        money -= cur
        bag.append(cur/100)
    bag.append(money/100)
    return bag
print(send2(100, 3))
print(sum(send2(100, 3)))
## 设计一个抢红包的函数

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注本站的更多内容!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表