列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
在python中,用方括号([ ]) 来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例。
>>> Hogwarts=['Gryffindor','Hufflepuff','Ravenclaw','Slytherin']
>>> Hogwarts
['Gryffindor', 'Hufflepuff', 'Ravenclaw', 'Slytherin']
-
访问列表元素
>>> Hogwarts[0]
'Gryffindor'
>>> Hogwarts[0].title()
'Gryffindor'
列表可通过索引来访问!!而索引呢,和C/c++等语音一样,都是从0开始索引的。但是呢,python为列表元素索引还提供了一种特殊语法。索引可为负数,-1呢就是检索列表的最后一个元素,-2就是倒数第二个,其他的以此类推啦。示例如下:
>>> Hogwarts[-1]
'Slytherin'
>>> Hogwarts[-2]
'Ravenclaw'
>>> Hogwarts[3]
'Slytherin'
并且我们可以使用此方法去提取列表中的元素,去使用它,构成其他某些成分。
>>> print("Dumbledore is from "+Hogwarts[0]+"!")
Dumbledore is from Gryffindor!
-
修改、添加和删除元素
修改列表元素。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
>>> Hogwarts[1]='slytherin'
>>> Hogwarts[3]='hufflepuff'
>>> Hogwarts
['Gryffindor', 'slytherin', 'Ravenclaw', 'hufflepuff']
在列表中添加元素。最简单的方法就是将元素加到列表末尾。
>>> Hogwarts.append('Sorting Hat')
>>> Hogwarts
['Gryffindor', 'slytherin', 'Ravenclaw', 'hufflepuff', 'Sorting Hat']
在列表中插入元素。使用方法insert()可在列表的任何位置。为此,需要指定新元素的索引和值。
>>> Hogwarts.insert(0,'Harry')
>>> Hogwarts
['Harry', 'Gryffindor', 'slytherin', 'Ravenclaw', 'hufflepuff', 'Sorting Hat']
从列表中删除元素。列表中存储的信息,像用户名,如果用户要注销其账户,则我们需用将其删除。故而,我们可以用del语句。但其元素不可再访问。
>>> del Hogwarts[0]
>>> Hogwarts
['Gryffindor', 'slytherin', 'Ravenclaw', 'hufflepuff', 'Sorting Hat']
还可以使用pop 方法删除元素。它将删除列表末尾元素,并让你能够接着使用它。
>>> popped_hat=Hogwarts.pop()
>>> poped_hat
>>> popped_hat
'Sorting Hat'
其实pop 函数也可以删除指定元素。只需在括号中指定要删除的元素的索引就可以了。
其次呢,我们也可以通过值来删除元素。这时候我们就要用到remove函数了。
>>> Hogwarts.remove('slytherin')
>>> Hogwarts
['Gryffindor', 'Ravenclaw', 'hufflepuff']
###对于没有的值
>>> Hogwarts.remove('slytherin')
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
Hogwarts.remove('slytherin')
ValueError: list.remove(x): x not in list
-
组织列表
在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。
-
使用方法sort 对列表进行永久性排序
>>> randnumber=[2,6,58,94,5]
>>> randnumber.sort()
>>> randnumber
[2, 5, 6, 58, 94]
可见这种改变是不可逆转的,我们也可以按相反顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True。
>>> randnumber.sort(reverse=True)
>>> randnumber
[94, 58, 6, 5, 2]
-
使用sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
>>> sorted(randnumber)
[2, 5, 6, 58, 94]
>>> sorted(randnumber,reverse=True)
[94, 58, 6, 5, 2]
要反转列表元素的排列顺序,可使用方法reverse()。
>>> print(randnumber)
[94, 58, 6, 5, 2]
>>> randnumber.reverse()
>>> randnumber
[2, 5, 6, 58, 94]
-
确定列表的长度
>>> len(randnumber)
5
Python计算列表元素数时从1开始,因此确定列表长度时,应该不会遇到差一错误。