python笔记 列表补充上

114 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情

0 环境

  • 编辑器:idea
  • 系统版本:win10
  • python版本:3.9.6

1 列表长度

格式:len(列表)

def other_demo():
    a = [111,112,113,114,115,116,117]
    print(len(a))

image.png

2 反转列表

格式:列表.reverse()。从下面列表的结果,可以看出来,只是将原列表的味道倒过来了,而返回值是一个None

def other_demo():
    a = [111,112,113,114,115,116,117]
    b = a.reverse()
    print("a ==>",a)
    print("b ==>",b)

image.png

3 列表排序

格式为:列表.sort()。还是原列表修改,返回值为None

def other_demo():
    a = [111,118,113,114,120,116,117]
    b = a.sort()
    print("a ==>",a)
    print("b ==>",b)

image.png

列表逆序排序,a.sort(reverse=True),注意:想逆序,需要在sort中添加reverse=True,这的True开头的T一定要是大写,不然会报错。

def other_demo():
    a = [111,118,113,114,120,116,117]
    b = a.sort()
    print("a ==>",a)
    print("b ==>",b)

    b = a.sort(reverse=True)
    print("a ==>",a)
    print("b ==>",b)

image.png

4 列表拷贝

将列表赋给其他对象。可以看出,a1被修改了,然后a我也没操作,但是a随着a1的修改而变化,这种赋值操作是引用传递,也称浅复制或浅拷贝。属于一荣俱荣,一损俱损。

def copy_demo():
    a = [1,2,3,4,5,6,7,8]
    a1 = a
    print("a1 ==>", a1)
    a1[1] = 12
    print("a1 ==>", a1)
    print("a ==>", a)

image.png

5 总结

还有一个影子拷贝、深拷贝比较重要,单独拿出来写。总结这次所学的,求取列表的长度,可用于判断,循环中使用。反转列表用的不多,知道即可,反转大意就是反过来转。排序sort中括号为空,正常的正序排序,若是sort中有reverse=True(T要大写),反转排序,这里的sort属于简单用用的那种,复杂的那种不建议用它。还有无论排序还反转列表,他们都是修改原列表,返回值为 None。然后是列表的拷贝,这个很容易用出问题,比如列表拷贝,可能我原来的目的,只是复制一份列表给他使用,但不改变我原来的列表,你没有用列表.copy(),而是直接赋值,那么效果就是原列表也会跟着被修改的,你可以看成合租厨房,两个人都可以修改,不是你先住进来,它后进来就有限制的,共同所有,也就说引用传递考虑清楚了,你也可以叫它浅复制。