2018-05-07
python - Lists
Python中最基本的数据结构是序列。序列中的每个元素都被分配一个索引。 第一个索引是0,第二个索引是1,依此类推。
可以对所有序列执行某些操作。 这些操作包括索引,切片,添加,乘法和检查是否存在。 另外,Python内置了查找序列长度和查找其最大和最小元素的函数。
创建列表
列表是Python中可用的最通用的数据类型,可以用方括号中的逗号分隔值(项目)列表编写。 列表中的重要事项是列表中的项目不必是相同的类型。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7, ]
访问列表中的值
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]
结果
list1[0]: physics
list2[1 : 5]: [2, 3, 4, 5]
更新列表
通过赋值来更新一个或多个变量,或通过append()来增加变量。
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]
结果
Value available at index 2 :
1997
New value available at index 2 :
2001
删除列表元素
要删除一个列表元素,如果你确切地知道删除哪个元素用del,否则用remove()。
list1 = ['physics', 'chemistry', 1997, 2000]
print list1
del list1[2]
print "After deleting value at index 2 : "
print list1
结果
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]
列表的基本操作
列表很像字符串一样对+和*运算符作出响应; 它们也意味着连接和重复,除了结果是新列表,而不是字符串。
python表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 连接 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 成员 |
for x in [1, 2, 3]: print x | 1 2 3 | 迭代 |
索引、切片和矩阵
由于列表是序列,因此索引和切片对列表的处理方式与字符串的处理方式相同。
L = ['spam', 'Spam', 'SPAM!']
print L[2]
print L[-2]
print L[1:]
结果
SPAM!
Spam
['Spam', 'SPAM!']
列表函数
函数 | 描述 |
---|---|
cmp(list1, list2) | 比较两个列表元素 |
len(list) | 列表长度 |
max(list) | 返回列表中的最大值 |
min(list) | 返回列表中的最小值 |
list(seq) | 将元组转换为列表 |
列表支持的操作
操作 | 描述 |
---|---|
list.append(obj) | 将对象obj追加到列表中 |
list.count(obj) | 返回obj在列表中出现次数的次数 |
list.extend(seq) | 将seq(另一个列表元素)附加到列表中 |
list.index(obj) | 返回obj出现的列表中最低的索引 |
list.insert(index, obj) | 将对象obj插入到偏移索引处的列表中 |
list.pop(obj = list [-1]) | 从列表中删除并返回最后一个对象或obj |
list.remove(obj) | 从列表中删除对象obj |
list.reversre( ) | 反转列表中的对象(将列表中元素倒序排列) |
list.sort([func]) | 用给定的函数对列表对象进行排序 |
注:以后会给出具体的操作例子!!!
网友评论