Python 的列表

1.列表是什么

Python 里面的列表由一系列按特定顺序排列的元素组成,它可以包含字母表中所有字母、数字0~9或所有家庭成员姓名,我们可以将任何东西加入列表中,列表其中的元素之间可以没有任何关系
在 Python 中,用方括号(** [ ] **)来表示列表,并用逗号来分隔其中的元素,如下所示:

Python_list = [1,2,3,4,5,6]
Python_strings = ["one", "two", "three"]

如果你将上面的列表打印出来,会发现这些数据就在一个(** [ ] **)中

(注:你可以理解 Python 中的列表为 Java 的 List)

2.修改列表元素

修改列表元素的语法与访问列表元素的语法类似
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值

Python_list = [1, 2, 30, 4, 10, 6]
print(Python_list[0]) 
Python_list[0] = 9
print(Python_list[0])  
# >>> 1
# >>> 9

你可以修改任何列表元素的值,而不仅仅是第一个元素的值,只要没有发生取值越界即可

3.在列表中添加新的元素

我们可以使用 **append **方法来给列表中添加的新的元素

Python_list = [1, 2, 30, 4, 10, 6]
Python_list.append("18")
print(Python_list[6])  
# >>> 18

方法** append()** 将元素 “18” 添加到了列表末尾,而不影响列表中的其他所有元素

[9, 2, 30, 4, 10, 6, '18']

如果我们需要将新的元素插入到指定的位置,需要使用 insert()

Python_list.insert(0, "zero")
print(Python_list)
# >>> ['zero', 9, 2, 30, 4, 10, 6, '18']

4.从列表中删除元素

如果知道要删除的元素在列表中的位置,可使用 **del **语句来删除列表的中的元素:

del Python_list[0]
print(Python_list)
# >>> [9, 2, 30, 4, 10, 6, '18']

使用 **del **可删除任何位置处的列表元素,条件是知道元素的索引
除了 del 语法,我们还可以使用 pop() 来删除指定索引的元素,不过它可以在删除的元素同时返回该元素

print(Python_list.pop(0)) 
print(Python_list)  
# pop 如果不传值,那么将删除末尾的元素
print(Python_list.pop())  
print(Python_list)  
# >>> 9
# >>> [9, 2, 30, 4, 10, 6, '18']
# >>> 18
# >>> [2, 30, 4, 10, 6]

但是我们有时候也仅知道要删除的元素值,无法知道元素的索引,那么这时候可以使用 remove() 方法:

Python_list.remove(10)
print(Python_list)
# >>> [2, 30, 4, 6]

不过主要注意的是, remove() 只会删除一个元素,如果列表中有多个相同的元素,就需要多次执行 **remove() **了

5.对列表的元素进行调整

元素的排列顺序并不一定符合我们的需求,这时候就需要对列表中的元素进行排序,这时候就可以使用 sort() 方法:

Python_list = ["one", "apple", "dog", "house", "member"]
Python_list.sort()
print("按照字母顺序从小到大排序为%s" % Python_list)
# >>> 按照字母顺序从小到大排序为['apple', 'dog', 'house', 'member', 'one']

如果我们需要相反的排序,可以给 sort() 方法传递参数 reverse=True

Python_list.sort(reverse=True)
print("按照字母顺序从大到小排序为%s" % Python_list)
# >>> 按照字母顺序从大到小排序为['one', 'member', 'house', 'dog', 'apple']

不过使用 sort() 对列表的排序修改是永久性的,如果我们只是临时需要用某个排序来展示列表的数据,那么可以使用 sorted() 方法:

Python_list = ["one", "apple", "dog", "house", "member"]
print("sorted排序为%s" % sorted(Python_list))
print("列表的排序为%s" % Python_list)
# >>> sorted排序为['apple', 'dog', 'house', 'member', 'one']
# >>> 列表的排序为['one', 'apple', 'dog', 'house', 'member']

可以看到,调用** sorted()** 方法并不会影响到原来的列表排序,如果希望 sorted() 进行倒序,传入参数 reverse=True 即可

print("reverse sorted排序为%s" % sorted(Python_list, reverse=True))
# >>> reverse sorted排序为['one', 'member', 'house', 'dog', 'apple']

不过要对列表进行排序,里面的元素必须有统一的排序判断要素,不然有可能会遇到出差,例如有一个列表里面既有 String,也有 int,执行排序的话:

Python_list = ["one", 1, 6, 8]
Python_list .sort()

就会抛出异常:
在这里插入图片描述

如果我们已经是按照某种顺序来给列表添加元素,如按照购买时间来将商品加入列表,那么我们想知道用户最后买了那几件商品,只需要将列表反转即可
要反转列表的元素,需要使用 reverse()

Python_list = ["one", 1, 2, "house", "member"]
Python_list.reverse()
print("反转后的列表排序为%s" % Python_list)
# >>> 反转后的列表排序为['member', 'house', 2, 1, 'one']

反转列表的元素并不是排序,因此我们可以看到上面的代码运行并没有报错,如果我们需要还原列表,只需要再执行一次 reverse()

6.避免列表的越界问题

如果你要访问的元素索引超过了列表的长度,都会遇到越界的异常:
在这里插入图片描述
为了避免越界的问题,在我们无法确定列表的元素时,应该检查一下列表的长度:

Python_list = ["one", "apple", "dog", "house", "member"]
print("列表的长度为%s" % len(Python_list))
# >>> 列表的长度为5

不过如果我们只是想访问列表的最后一个元素,可以使用 索引值 -1

Python_list = ["one", "apple", "dog", "house", "member"]
print("列表的最后一个元素为%s" % Python_list[-1])
# >>> 列表的最后一个元素为member

但是这方法无法用在空的列表上面,因为这时列表里面没有任何元素,因此也会触发越界的异常,最保险的方法判断一下列表是否为空:

Python_list = []
if len(Python_list) > 0:
    print("列表的最后一个元素为%s" % Python_list[-1])
else:
    print("这是一个空的列表")
# >>> 这是一个空的列表

7.列表与循环

在 Python 中使用循环也很简单:

Python_list = ["one", "apple", "dog", "house", "member"]
for item in Python_list:
    print("item is %s" % item)

输出也很简单:
在这里插入图片描述
在 **for **循环中,想包含多少行代码都可以,但是这有一个前提,就是这些代码都在 for 循环的缩进里面:

Python_list = ["one", "apple", "dog", "house", "member"]
for item in Python_list:
    print("item format title is %s" % item.title())
    print("item is %s" % item)

然后就可以看到输出变成:
在这里插入图片描述
这里就可以明白,在 Python 中,是使用缩进来表示要执行的代码块,至于是不是,我们可以来测试一下:

Python_list = ["one", "apple", "dog", "house", "member"]
for item in Python_list:
    print("item format title is %s" % item.title())
    print("item is %s" % item)
print("the end")

可以看出最后一行代码只有一次输出:
在这里插入图片描述
这下我们就明白了,Python 是依据 缩进 来判断代码行与前一个代码行的关系,这个必须牢记,避免开发中遇到一些不必要的错误

8.使用列表的一部分

如果我们只需要用到列表的其中一部分,我们可以这么干:

Python_list = ["one", "apple", "dog", "house", "member"]
print(Python_list[2:2])
print(Python_list[2:3])
print(Python_list[1:3])
# >>> []
# >>> ['dog']
# >>> ['apple', 'dog']

从上面可以看出,列表的元素取值区间 [ ] ,实际上是一个 [ ) 的区间
如果没有指定起始索引值,Python 将自动从列表开头开始:

Python_list = ["one", "apple", "dog", "house", "member"]
print(Python_list[0:3])
# >>> ['one', 'apple', 'dog']

我们也可以指定从某个的索引值开始:

Python_list = ["one", "apple", "dog", "house", "member"]
print(Python_list[1:])
# >>> ['apple', 'dog', 'house', 'member']

我们还可以使用负数索引来输出列表尾部的元素:

Python_list = ["one", "apple", "dog", "house", "member"]
print(Python_list[-3:])
print(Python_list[-3:-1])
# >>> ['dog', 'house', 'member']
# >>> ['dog', 'house']

使用负数索引后,很明显元素取值区间 [ ] 由 [ ) 变成了 ( ] 了,使用时注意即可

9.列表的复制

复制有两个情况,一个赋值复制,一个克隆复制,我们依据实际情况来使用
首先是赋值复制:

Python_list = ["one", "apple", "dog", "house", "member"]
new_list = Python_list
Python_list.insert(1, "two")
print("Python_list : %s" % Python_list)
print("new_list : %s" % new_list)
# >>> Python_list : ['one', 'two', 'apple', 'dog', 'house', 'member']
# >>> new_list : ['one', 'two', 'apple', 'dog', 'house', 'member']

输出表明,这两个列表是相同的,因为这两个列表变量指向的都是同一块内存地址
接着是克隆复制:

Python_list = ["one", "apple", "dog", "house", "member"]
new_list = Python_list[:]
Python_list.insert(1, "two")
new_list.insert(1, "three")
print("Python_list : %s" % Python_list)
print("new_list : %s" % new_list)
# >>> Python_list : ['one', 'two', 'apple', 'dog', 'house', 'member']
# >>> new_list : ['one', 'three', 'apple', 'dog', 'house', 'member']

可以看到,这是两个不同的列表对象了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值