简介: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,如果因为索引错误找不到解决方法,可以尝试将列表或其长度打印出来。
总结:在本章中,学习了列表是什么以及如何使用其中的元素,如何定义列表以及如何增删元素,如何对列表进行永久性排序,以及如何为展示列表而进行临时排序,如何确定列表的长度,以及在使用列表时如何避免索引错误。
领取专属 10元无门槛券
私享最新 技术干货