• Python学习基础笔记五——列表


    字符串对象具有sequence特性。

    列表(list)和元组(tuple)也是具有sequence特性的。

    列表对象经常用来存储其他任何类型的数据对象。

    注意:是任何类型的对象、整数、小数、字符串、函数等等都可以。也可以存储另外一个列表对象。

    列表的定义

    定义一个空列表,赋值给一个变量:

    nameList = []

    如果定义列表的时候,里面就存放了一些数据对象,只需要填写到方括号中就可以了。

    a = [1, 2, 3.14, 'hello']

    这个列表中包含了多种类型的对象:整数、小数和字符串。

    列表中的每个对象,称之为列表的一个元素。

    列表的sequence操作。

    列表也是有sequence特性的,当然也支持sequence操作。

    切片。

    改变列表的内容:

    a[0] = 'chang'

    可以看到列表a的第一个元素值发生了变化。

    这个也叫索引赋值。

    另外还有切片赋值的应用场景。

    切片赋值甚至支持替换的元素比被替换的元素多的场景。

    (切片地去改,迭代地进行更改。)

    合并两个列表:直接使用加号+。

    列表是一种内容可改变的对象。

    列表重要的是增删改查,其他有len()、sort()等的公共方法:

    方法说明
    L.Append(item)在列表结尾增加一个元素item
    L.insert(I, x)在I索引位置插入一个值x
    L.extend([5, 6, 7])在列表迭代增加一些值
    L.pop()按索引删除列表的元素,default last
    L.remove(2)按值删除列表的元组,删除的第一次出现的值
    L.clear()清空列表
    del L删除L列表
    del L[2:]切片删除列表中的元素
    L[1]=value索引赋值
    L[i:j]=[]切片地去改,迭代地进行更改
    L[i:j]=[4,5,6]切片地去改,迭代地进行更改
    for x in L: print(x)迭代
    3 in L成员关系
    L * 3重复
    L1 + L2合并
    len(L)列表长度
    L = list('spam')可迭代项目的列表
    L[i:j]求切片
    L.count(item)求元素出现的次数
    L.index(value) 返回第一个值的索引
    L.sort() 列表的正向排序
    L.sort(reverse=True)列表的反向排序
    L.reverse()列表的反转

    题目1:打印嵌套的子列表

    1. L = [1, 2, 3, ['Alice', 'Alex', 'Tonny'], 5, 6, ['Java', 'Python', 'C'], 8]
    2. for i in range(len(L)):
    3. if type(L[i]) == list:
    4. for j in L[i]:
    5. print(j)
    6. else:
    7. print(i + 1)

    结果:

    1. C:\CodeProjects\PythonProjects\s9\venv\Scripts\python.exe C:\CodeProjects\PythonProjects\s9\day2\01homework.py
    2. 1
    3. 2
    4. 3
    5. Alice
    6. Alex
    7. Tonny
    8. 5
    9. 6
    10. Java
    11. Python
    12. C
    13. 8

    代码中type(L[i])) == list。

    这个语句的判断。这种使用方法可以记住。

    2023年10月13日:

    函数也是一种数据对象。

    append方法:

    1. a = [1, 2, 3.14, 'hello']
    2. a.append('你好')
    3. print(a)
    4. a.append([7, 8])
    5. print(a)

    需要注意的是,append方法的返回值是None,而不是新的列表对象。

    insert方法:

    如果我们不是在列表的后面添加一个元素,而是在指定的位置插入一个元素,我们就可以使用insert方法。

    insert方法的返回值也是None。

    1. a = [1, 2, 3]
    2. a.insert(0, 'b')
    3. print(a)

    pop方法:

    从列表中取出并删除一个元素,就可以使用pop方法。

    该方法的参数就是要取出元素的索引。

    取出后,该元素就从该列表中删除了。pop也经常用来删除某个元素。

    1. a = [1, 2, 3.14, 'hello']
    2. a.pop(3)
    3. print(a)

    有取出的意思,取出,那也就从列表中删除了。 

    没有看到pop有弹出、取出的意思。有流行音乐、突然、砰地的意思。

    pop方法的返回值是提取出来的元素。

    remove方法:

    remove方法也是删除元素的方法。

    remove方法的参数,就是要删除元素的值。pop方法的参数是要删除元素的索引。

    理解:

    remove从第1个元素开始,寻找与参数对象相等的元素,如果找到了就删除。

    找到后,不会继续往后再寻找其他相等的元素。

    也就是说remove最多只删除一个元素。

    1. var1 = ['a', 'b', 'c', 'a']
    2. var1.remove('a')
    3. print(var1)

    第一个元素‘a’,被删除掉了。

    删除元素的时候,如果即知道位置,也知道值,那么根据位置索引进行删除是比较好的,效率高。

    但是如果按值,还需要最比对,才能被删除。

    除非不知道位置在哪儿,就只能用remove来进行删除。

    reverse方法:

    reverse方法是把列表元素倒过来。

  • 相关阅读:
    LeetCode每日一题——1668. 最大重复子字符串
    简单了解一下:Node的util工具模块
    嵌入式学习(Day 51:ARM指令/汇编与c语言函数相互调用)
    [ITIL]-ITIL的发展进程
    搞笑段子很皮的文案系列001,可爱有趣文案系列合集
    了解HTTP协议
    Java项目:SSM校园班级同学通讯录管理系统
    c++11 lambda表达式(一)
    Nanoprobes丨Nanogold 标记条带的凝胶染色
    算法的时间复杂度与空间复杂度
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/127942483