列表

列表与元组很相似,可以通过一个列表变量来存储多个数据值。但是,列表是可变的,并且可以修改、增加或者删除存储在列表中的数据值。

1、创建一个列表

有4种方法可以创建一个列表变量,这与元组非常相似:

a、使用一对空的方括号创建一个空的列表,如下所示:
list = []
print(list)
#输出结果为
[]
b、使用方括号将一组逗号分隔的值括起来,如下所示:
list = [1,2,3,4,5]
print(list)
#输出结果为
[1,2,3,4,5]
c、使用 list( ) 函数从另一个可迭代的对象中创建列表,如下所示:
tuple = 1,2,3,4,5
list = list(tuple)
print(list)
#输出结果为:
[1,2,3,4,5]
d、使用列表解析

用列表解析来创建列表是从其他数据中创建列表的一种复杂过程。注意,对于列表Python使用方括号,而不是像元组那样使用圆括号。就像元组一样,列表可以包含任何类型的数据,不仅仅是数字,如下所示:

list = ["中国","日本","美国","意大利","新加坡"]
print(list)
#输出结果为:
["中国","日本","美国","意大利","新加坡"]

2、从列表中获取数据

从一个列表中获取所有的数据,可以使用索引值来从列表中获取某个值,就像元组一样,如下所示:

list = [1,2,3,4,5]
print(list[0])
#输出结果为:
1
list = [1,2,3,4,5]
print(list[3])
#输出结果为:
4

也可以使用一个复数作为列表索引,负数索引会从列表尾部向前取值:

list = [1,2,3,4,5]
print(list[-1])
#输出结果为:
5

注意,当使用负数的索引值的时候,-1是列表的末尾,因为 -0 和 0 一样。
列表也支持通过切片功能来获取列表中元素的一个子集,就像下面的例子一样:

list = [1,2,3,4,5]
list2 = list[0:3]
print(list2)
#输出结果为:
[1,2,3]

3、使用列表

列表和元组之间的主要区别是,可以修改列表中的数据元素。这意味着,可以做很多对元组不能做的事情!

a、修改列表值

可以对列表做的一项最基本的操作是修改列表的值。这就是像使用赋值语句一样简单,通过索引引用某个列表项,然后给它赋值一个新的值。例如,如下的示例显示了将第二个值(使用索引1来引用)修改为10:
这里写图片描述
当打印这个列表值时,它的第2个值是 10;在更复杂的操作中,你可以使用另一个列表或元组来替代当前列表的一个子集。通过使用列表切片的方法,可以引用并修改一个子集,如下所示:
这里写图片描述

Python使用tuple1中的值替换从索引3结束的所有数据元素。

b、删除列表中的值

可以使用 del 语句删除一个列表中的元素,如下所示:

这里写图片描述

也可以使用切片方法删除一个列表中的某个子集的所有元素,如下所示:

这里写图片描述

切片的方法允许你选择想从列表中删除的元素。

c、弹出列表值

Python提供了一个特殊的函数,可以从列表中获取一个元素并同时从列表中删除它。pop( ) 函数允许从列表中取出任何一个值。例如,这个例子从列表 list6 中弹出索引序号为 5 的值:
这里写图片描述

当从列表中弹出一个值的时候,其后方的元素会移位来替换被弹出的元素。如果没有给 pop( ) 函数指定一个索引值,它会弹出列表中的最后一个元素,如下所示:

这里写图片描述

d、添加新元素

可以使用 append( ) 函数向已经存在的列表中添加新的元素,如下所示:
这里写图片描述

append( ) 函数会将新的数据值添加到已有的列表的末尾。也可以通过使用 insert( ) 函数将一个新元素值插入到列表一个指定的索引位置上。insert( ) 函数需要两个参数。第一个参数表示想要将新的数据值放到哪一个索引位置之前,第二个参数是需要插入的值。因此,要在列表前面插入一个值,可以这样使用:

这里写图片描述

如果要插入到列表中间就这样执行就可以:

这里写图片描述

insert( )语句将2.5插入到了索引3的前面,这使得它成为新的索引3的值并且将在列表中的其他元素向后移动一个位置。可以组合使用 appen( ) 和 pop( ) 函数,在Python脚本中实现一种叫做栈的数据结构,可以向栈中压入数据值,然后按照和压入顺序相反的顺序获取他们(即后进先出 [ LIFO])。为了做到这一点,可以在不使用索引的情况下,用append( ) 函数往一个空的列表中添加新的元素,然后使用 pop( ) 函数获取这些元素。

e、连接列表

在使用 append( ) 函数的时候,需要特别小心。如果尝试附加一个列表到另一个列表时,也许不会得到想要的结果,如下所示的代码就出现了这种情况:

这里写图片描述

当在 append( ) 函数的参数中使用一个列表对象时,Python会将这个列表作为一个独立的数据元素进行处理。因此,在这个例子当中, list[3] 的值就是一个列表:

这里写图片描述

如果想要连接 list8 和 list9,需要使用extend( ) 函数,如下所示:

这里写图片描述

现在的结果是在一个列表中包含了两个列表的元素。使用加号也同样有效,就像对元组操作一样,如下代码所示的结果:

这里写图片描述

f、其他的列表函数

除了已经讨论的列表函数,Python还包括了一些方便的列表函数。例如,可以使用 count( ) 函数统计一个指定的数据值在列表中出现了多少次,如下代码所示结果:

这里写图片描述

也可以使用 sort( ) 函数来对列表中的值进行排序,如下所示:

这里写图片描述

需要注意的是, sort( ) 函数会使用排序后的顺序替换列表中的数据值之前的顺序。这会改变单个额数据元素的索引的位置,因此在新的列表中引用元素时,需要特别注意这类问题。

可以使用 index( ) 函数找出某个元素在列表中的位置。 index( ) 函数返回元素在列表中第一次出现的索引位置值。
这里写图片描述

用 reverse( ) 函数可以很容易地反转列表中所存储的元素的顺序,如下所示的代码:

这里写图片描述

所有的元素仍在列表中,只不过是顺序编程与最初的顺序相反而已。

4、使用多维列表存储数据

Python支持使用多维列表,也就是说,列表中的数据元素本身也是列表!在多维列表中,其中包含的每一个特定的数据元素,都会与多个索引值关联。记录多维列表中的数据会变得相对复杂,但是这些列表的确可以发挥很大的作用。可以像创建普通列表一样创建多维列表,只要将列表作为元素就可以啦!如下代码所示:

这里写图片描述

要引用多维列表中的一个数据值,需要指定主列表的索引值,以及在数据值列表中的索引值。使用方括号括住每一个索引值,并以按照最外层列表到最内层列表中的顺序来放置这些值,如下所示的代码:

这里写图片描述
第一个例子获取第一个列表的第一个值,最后一个例子获取了第三个列表中的第三个值。这里演示的是一个二维列表。还可以在列表中使用列表的列表,这样就创建了一个三维列表,可以继续增加维度,但是当超过三维之后,列表就会变得比较复杂啦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值