python内置数据结构之list

914 查看

列表

Good thing about a list is that items in a list need not all have the same type.

Accessing Values in Lists:

To access values in lists, use the square brackets for slicing along with the index or indices to obtain value available at that index. Following is a simple example:

#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

When the above code is executed, it produces the following result:

list1[0]: physics
list2[1:5]: [2, 3, 4, 5]
Updating Lists:

You can update single or multiple elements of lists by giving the slice on the left-hand side of the assignment operator, and you can add to elements in a list with the append() method. Following is a simple example:

#!/usr/bin/python
list = ['physics', 'chemistry', 1997, 2000];
print "Value available at index 2 : "
print list[2]
list[2] = 2001
print "New value available at index 2 : "
print list[2]

Note: append() method is discussed in subsequent section.
When the above code is executed, it produces the following result:

Value available at index 2 :1997
New value available at index 2 :2001
Delete List Elements:

To remove a list element, you can use either the del statement if you know exactly which element(s) you are deleting or the remove() method if you do not know. Following is a simple example:

#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000]
print list1
del list1[2]
print "After deleting value at index 2 : "
print list1

When the above code is executed, it produces following result:

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

Note: remove() method is discussed in subsequent section.

Basic List Operations:

Lists respond to the + and * operators much like strings; they mean concatenation and repetition here too, except that the result is a new list, not a string.
In fact, lists respond to all of the general sequence operations we used on strings in the prior chapter.

Python Expression Results Description
len([1, 2, 3]) 3 Length
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] Concatenation
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] Repetition
3 in [1, 2, 3] True Membership
for x in [1, 2, 3]: print x, 1 2 3 Iteration

Indexing, Slicing, and Matrixes:

Because lists are sequences, indexing and slicing work the same way for lists as they do for strings.
Assuming following input:
L = ['spam', 'Spam', 'SPAM!']

Python Expression Results Description
L[2] 'SPAM!' Offsets start at zero
L[-2] 'Spam' Negative: count from the right
L[1:] ['Spam', 'SPAM!'] Slicing fetches sections

Built-in List Functions & Methods:

Python includes the following list functions:

cmp(list1, list2) #Compares elements of both lists.
len(list) #Gives the total length of the list.
max(list) #Returns item from the list with max value.
min(list) #Returns item from the list with min value.
list(seq) #Converts a tuple into list.

Python includes following list methods

list.append(obj) #Appends object obj to list
list.count(obj) #Returns count of how many times obj
list.extend(seq) #Appends the contents of seq to list
list.index(obj) #Returns the lowest index in list that obj appears
list.insert(index, obj) #Inserts object obj into list at offset index
list.pop(obj=list[-1]) #Removes and returns last object or obj from list
list.remove(obj) #Removes object obj from list
list.reverse() #Reverses objects of list in place
list.sort([func]) #Sorts objects of list, use compare func if given