【python学习过程--day7】python中的列表

本文详细介绍了Python中的列表数据结构,包括列表的定义、基本操作(如索引、切片、添加、删除),以及排序方法。同时纠正了关于列表的一些常见误解,如replace和lst[item]的用法,并探讨了如何按照自定义规则排序列表。
摘要由CSDN通过智能技术生成

python中的列表

        在Python中,列表(List)是一种有序、可变、允许重复元素的数据结构,用于存储一组有序的数据。列表是Python中最常用的数据类型之一,具有广泛的应用场景。下面是关于Python列表的一些基本知识:

  1. 定义列表:可以使用方括号[]来定义列表,并在其中包含一组元素。

    my_list = [1, 2, 3, 4, 5]
  2. 列表索引和切片:可以使用索引和切片来访问列表中的单个元素或子列表。

    print(my_list[0])      # 输出第一个元素1
    print(my_list[1:3])    # 输出子列表[2, 3]
    
  3. 列表长度:可以使用len()函数来获取列表的长度。

    length = len(my_list)
  4. 列表操作

    • 添加元素:可以使用append()方法向列表末尾添加新元素。
      my_list.append(6)
      
    • 插入元素:可以使用insert()方法在指定位置插入新元素。
      my_list.insert(2, 10)
      
    • 删除元素:可以使用del语句、remove()方法或pop()方法删除列表中的元素。
      del my_list[0]
      my_list.remove(3)
      popped_element = my_list.pop(2)
      
    • 清空列表:可以使用clear()方法清空列表中的所有元素。
      my_list.clear()
      
  5. 列表迭代:可以使用for循环对列表进行迭代。

    for item in my_list:
        print(item)
    
  6. 列表方法:Python提供了丰富的内置方法来操作列表,例如sort()reverse()count()等。

    my_list.sort()      # 对列表进行排序
    my_list.reverse()   # 将列表中的元素反转
    count = my_list.count(2)  # 统计列表中元素的出现次数
    
  7. 列表推导式:可以使用列表推导式快速生成列表。

    squares = [x ** 2 for x in range(1, 6)]  # 生成1到5的平方列表
    

        列表是Python中非常强大和灵活的数据类型,能够存储各种类型的元素,并支持丰富的操作和方法,使得列表在实际编程中应用广泛。

学习笔记

        错误示例1、列表无replace方法,故不能用这种方法完成替换
lst = ["张三丰","张无忌","张自己安","张飞"]
print(lst)
for item in lst:
    if item.startswith("张"):
            print(item)
            item.replace("张", "王")
            print(item)
print(lst)

报错情况:不能成功替换,因为每次对字符串的操作都会产生新的字符串,下面的item1才是我们想要的结果

lst = ["张三丰","张无忌","张自己安","张飞"]
print(lst)
for item in lst:
    if item.startswith("张"):
            print(item)
            item1 = item.replace("张", "王")
            print(item1)
print(lst)
         错误示例2、列表无lst[item]得到索引的方法,而用下面的代码lst.index(item)即可解决:
lst = ["张三丰","张无忌","张自己安","张飞"]
print(lst)
for item in lst:
    if item.startswith("张"):
            print(item)
            # item.replace("张", "王")
            new = "wang" + item[1:]
            print(new)
            lst[int(lst[item]-1)] = new
print(lst)

报错内容:Traceback (most recent call last):
  File "/home/visionx/project/Watermark-Robustness-Toolbox/test.py", line 12, in <module>
    print(lst["张三丰"])
TypeError: list indices must be integers or slices, not str
lst = ["张三丰","张无忌","张自己安","张飞"]
print(lst)
for item in lst:
    if item.startswith("张"):
            print(item)
            # item.replace("张", "王")
            new = "wang" + item[1:]
            print(new)
            lst[lst.index(item) - 1] = new
print(lst)
# print(lst["张三丰"])

又或者:

lst = ["张三丰", "张无忌", "张自己安", "张飞"]
for i in range(len(lst)):
    if lst[i].startswith("张"):
        new_name = "王" + lst[i][1:]
        lst[i] = new_name
print(lst)
        错误示例3、 pop和remove删除元素的索引傻傻分不清楚
lst = ["张三丰","张无忌","张自己安","张飞","张enai"]
# # lst = [12,34,55,66,542,23,12,23]
# lst.sort()
# print(lst)
for item in lst:
    if item.startswith("张"):
            print(item)
            print(lst)
            # item1 = item.replace("张", "王")
            # lst.remove(item)
            print(lst.index(item))
            lst.pop(lst.index(item))
            # print(item1)
print(lst)

运行过程:
张三丰
['张三丰', '张无忌', '张自己安', '张飞', '张enai']
0
张自己安
['张无忌', '张自己安', '张飞', '张enai']
1
张enai
['张无忌', '张飞', '张enai']
2
['张无忌', '张飞']

由于列表长度一直在减小,而索引一直在增大,所以没有遍历到的这部分元素便不会被删除

        正确做法创建一个新的列表,将不是姓张的元素添加到新列表中: 

lst = ["张三丰", "张无忌", "张自己安", "张飞", "张无忌"]
new_lst = []
for item in lst:
    if not item.startswith("张"):
        new_lst.append(item)
lst = new_lst
print(lst)

        或者是这样: 

相关链接

Python3 列表 | 菜鸟教程Python3 列表 序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。 Python 有 6 个序列的内置类型,但最常见的是列表和元组。 列表都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。 列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现..icon-default.png?t=N7T8https://www.runoob.com/python3/python3-list.html

1.4 列表(List) | Python 最常用的数据结构之一 — 可乐python说 1.0.0 文档icon-default.png?t=N7T8https://kelepython.readthedocs.io/zh/latest/c01/c01_04.html

        列表元素的排序规则

        在 Python 中,对列表进行排序时,默认情况下会按照列表中元素的自然顺序进行排序。对于字符串类型的元素,自然顺序是按照 Unicode 码点进行比较。

        在你提供的列表lst中,元素都是字符串类型,因此调用sort()方法时,会按照字符串的自然顺序进行排序。对于字符串类型,自然顺序是按照字符的 Unicode 码点进行比较,即按照字典序进行排序。

        所以,对于lst = ["张三丰", "张无忌", "张自己安", "张飞"],调用sort()方法后,元素会按照以下顺序进行排序:

["张三丰", "张无忌", "张自己安", "张飞"]

        如果你想要按照其他规则进行排序,例如按照字符串的长度、按照拼音排序等,你可以通过传递参数给sort()方法来指定自定义的排序规则。例如,如果要按照字符串的长度进行排序,可以传递key=len参数:

lst = ["张三丰", "张无忌", "张自己安", "张飞"]
lst.sort(key=len)
print(lst)  # 输出:["张飞", "张无忌", "张三丰", "张自己安"]

        这样就会按照字符串长度进行排序。

完结撒花

        所以啊,人总患孤寡!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值