列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字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开始,因此确定列表长度时,应该不会遇到差一错误。