python列表简介

简介:python列表是由一系列按特定顺序排序的元素组成的,可以创建包含字母表中的所有数字,字母0-9或者所有家庭成员的列表,也可以将任何东西加入列表中,其中的元素没有任何关系。

在python中,用方括号[ ]来表示列表,并用逗号来分隔其中的元素,下面是一个简单的列表示例,用一个列表来存储几个国家的名字:

country=['中国','美国','日本','德国'] (存储列表元素)

print(Country)

打印结果:['中国','美国','日本','德国']

python将打印列表的内容,而且还包括了方括号和引号

鉴于这不是你要让用户看到的结果,下面来学习如何访问列表元素。

列表是一个有序集合,因此要访问列表的任何一个元素,只需将该元素的位置或索引告诉python即可,(要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内)例如,我将从下面的列表中提取名为中国的国家:

country=['中国','美国','日本','德国']

print(country[0])

当你请求获取列表的元素时,python只返回该元素,而不包括方括号和引号

显示结果为:中国

该语法就使用了索引,获取变量country第一个元素,什么是索引,往下看!

索引是从0开始的而不是1

在python中,第一个列表元素的索引是0,而不是1,这和底层实现有关。

country=['中国','美国','日本','德国']

print(country[1])

索引修改为1,则返回的结果不是列表里面的中国而是美国

python提供了一种特殊的语法,通过将索引指定为-1,则返回最后一个列表元素

country=['中国','美国','日本','德国']

print(country[-1])

索引修改为-1,则返回列表最后一个元素德国

如果索引修改为-2则放回倒数第二个列表元素,-3则返回倒数第三个元素,以此类推!

可使用列表中的各个值

可像其他变量一样使用列表中的各个值,例如,你可以使用拼接根据列表中的值来创建消息。

下面将尝试从列表中提取一个国家,并使用这个值来创建一条消息:

country=['中国','美国','日本','德国']

message='宝马汽车属于'+country[3]+'。'

print(message)

打印结果为:宝马汽车属于德国。

我们使用country[3]的值生成了一个句子,并将存储在变量message中,然后打印message。

修改,添加和删除元素

创建的大多数列表都将是动态的,这意味这列表创建后,将随这程序的运行增删元素。

修改列表元素

下面假设一个国家列表,其中一个元素为日本,如何修改他的值?

country=['中国','美国','日本','德国']

country[2]='法国'

首先我们知道列表中第三个元素是日本,所以直接使用语法:变量[索引]='值'

print(country)

打印结果为:country=['中国','美国','法国','德国']

添加元素到列表

在列表添加新元素时,最简单的方式是将元素附加到列表末尾,使用方法append()给列表附加元素时,它将添加到列表末尾,例如添加一个元素‘俄罗斯’

country=['中国','美国','日本','德国']

country.append('俄罗斯')

方法append()将元素俄罗斯添加到列表末尾,而不影响列表中的其他所有元素

print(country)

打印结果:['中国','美国','日本','德国'.'俄罗斯']

你也可以创建一个空的列表,使用append()添加元素:

country=[]

country.append('中国')

country.append('德国')

country.append('英国')

print(country)

打印结果为:

['中国','德国'.'英国']

如果你的元素不想添加至列表末尾,想添加到你指定的位置可以是用insert()方法,例如:

country=['中国','美国','日本','德国']

country.insert(0,'韩国')

print(country)

打印结果为:['韩国','中国','美国','日本','德国']

在示例中,值韩国被插入到列表第一个,方法insert()在索引0处添加空间,并将值韩国存储到这个地方,这种操作将列表中既有的每个元素都右移一个位置。

删除列表中的元素

程序中经常会删除一个或者多个元素,你可以根据位置或值来删除列表中的元素。

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

country=['中国','美国','日本','德国']

del country[2]

print(country)

打印结果为:['中国','美国','德国']

示例中,我知道日本在第三个位置,所以我使用del 变量名[索引位置]进行删除日本这个元素,使用del可以删除列表中任何一个元素,条件是必须要知道索引。

使用方法pop()删除元素

有时候,你要将元素从列表中删除,并接着还要去使用它。

比如你删除一个活跃用户,并且还要将该用户拉入到非活跃成员列表中去,怎么办?

方法pop()能够帮你解决,它可删除列表末尾的元素,并让你能够接着使用它,术语弹出(pop)源自这样的类比,列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

如在下面列表country中弹出一个国家名称。

country=['中国','美国','日本','德国']

popped_country=country.pop()

print(country)

print(popped_country)

打印结果country为:['中国','美国','日本']

打印结果popped_country为:德国

示例中,我们首先定义列表country,接下来,我们从这个列表中弹出一个值,并将其存储到变量popped_country中,然后我们打印country这个列表,核实一下从country列表中删除的值,最后我们打印弹出来的值,以证明我们依然能够访问被删除的值,输出表明,列表末尾的值被删除,并且存储在变量popped_country中,还能继续打印出来。

如果我想指定弹出某个值呢?请往下看!

如果要弹出列表中任何一个位置的元素,只需在pop()括号内加索引即可,如:

country=['中国','美国','法国','德国']

fist_owned=country.pop(0)

print('列表中属于亚洲的国家是'.+fist_owned+'。')

打印结果为:列表中属于亚洲的国家是中国。

请注意:使用pop()时,被弹出的元素就不在列表中了。

如果你不确定使用del语句还是pop()方法,用一个简单的判断标准,如果你要冲列表中删除一个元素,且不再以任何方式使用它,就使用del语句,如果你要在删除元素后还能继续使用它,就使用pop()方法。

根据值删除元素

有时候,你不知道要从列表中删除的值所处的位置,但是你知道要删除的元素的值,可使用remove()方法。

如我要删除列表中的法国

country=['中国','美国','法国','德国']

country.remove('法国')

print(country)

打印的结果为:['中国','美国','德国']

使用remove()从列表中删除的元素,也可以接着使用它的值。

country=['中国','美国','法国','德国']

too_expensive='美国'

country.remove(too_expensive)

print(country)

print('我删除了列表country中的'+too_expensive+'。')

打印结果1:['中国','法国','德国']

打印结果2:我删除了列表country中的中国。

示例中,我们首先将美国存储在变量too_expensive中,接下来使用这个变量来告诉python将哪个值从列表中删除,最后,值美国从列表country中删除,但是他还存储在too_expensive中,所以打印too_expensive得到美国这个值。

请注意:方法remove()只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

组织列表

在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并没非总控制用户提供数据的排序,但是你经常需要以特定的顺序呈现信息,有时候需要保留列表元素最初的排序,而有时候有需要调整排列顺序,python提供了很多组织列表的方式,可根据具体情况选用。

使用方法sort()对列表进行永久性排序

python方法sort()让你能够轻松地对列表进行排序,假设你有一个字母列表,并要让其按字母顺序排列,如下:

cars=['c','e','a','b']

cars.sort()

print(cars)

打印结果:['a','b','c','e']

sort()方法永久性地修改了列表元素的排序,现在字母表按字母顺序排序,再也无法恢复到原来的排序。

你还可以按与字母相反的顺序排列列表元素,为此,只需要sort()方法传递参数reverse=True。如:

cars=['c','e','a','b']

cars.sort(reverse=Ture)

print(cars)

打印结果:['e','c','b','a']

同样,对列表排序的修改是永久性的

使用函数sorted()对列表进行临时排序

如果要保留列表原来的排序,同时以特定的顺序呈现他们,可使用函数sorted(),函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排序。如:

cars=['c','e','a','b']

print(cars)

print(sorted(cars))

print(cars)

打印结果1:['c','e','a','b']

打印结果2:['a','b','c','e']

打印结果3:['c','e','a','b']

示例中,我们首先按原始排序打印出来一遍,再使用sorted()函数让字母以特定的排序显示该列表,然后再进行核实,确定是否排序还和最初一样。

得知,调用函数sorted()后,列表元素的排序并没有变,如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递reverse=True.

cars=sorted(cars,reverse=True)

倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse(),如:

cars=['c','e','a','b']

cars.reverse()

print(cars)

打印结果为:['b','a','e','c']

注意,reverse()是颠倒排序,最后的到最前,最前的到最后。

确定列表长度

使用len()可快速获知列表长度,如:

cars=['c','e','a','b']

print(len(cars))

打印结果:4

示例中,列表元素为4个,所以打印结果为4

python计算列表元素时从1开始,因此确定列表长度时,不会遇到差一错误。

使用列表时避免索引错误

索引是从0开始的,不是从1开始的,所以一个列表里有4个元素,你需要打印第四个元素,索引必须为3,不能为4,或者你要打印最后一个元素,也可以把索引设置为-1,如果因为索引错误找不到解决方法,可以尝试将列表或其长度打印出来。

总结:在本章中,学习了列表是什么以及如何使用其中的元素,如何定义列表以及如何增删元素,如何对列表进行永久性排序,以及如何为展示列表而进行临时排序,如何确定列表的长度,以及在使用列表时如何避免索引错误。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317G03KU600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券