python提供了一个被称为列表的数据类型,他可以存储一个有序的元素集合。
记住:一个列表可以存储任意大小的数据集合。列表是可变对象,有别于字符串str类,str类是不可变对象。
1.创建一个列表
list1 = list() #创建一个空列表
list2 = list([2,3,4]) #创建列表,包含元素2,3,4
list3 = list(["red","green"]) #创建字符串列表
list4 = list(range(3,6))
list5 = list("abcd")
我们用图说话:
2.list的常用操作
python中的字符串和列表都是序列类型。一个字符串是一个字符串序列,而一个列表是任何元素的序列。
操作 | 描述 |
x in s | 如果元素x在序列s中则返回true |
x not in s | 如果元素x不在序列s中则返回true |
s1 + s2 | 连接两个序列s1和s2 |
s*n, n*s | n个序列s的连接 |
s[ i ] | 序列s的第 i 个元素 |
s[ i, j ] | 序列s从下标 i 到 j-1 的片段 (列表截取) |
len(s) | 序列s的长度,即s中的元素个数 |
min(s) | 序列s的最小元素 |
max(s) | 序列s的最大元素 |
sum(s) | 序列s中所有元素之和 |
for loop | 在for循环中从左到右反转元素 |
<,<=,>,>=,=,!= | 比较两个序列,若真则返回true |
random.shuffle(s) | 随意排列序列s中的元素 |
有图看的更清楚点:
3.下标运算符 []
有列表mylist,则mylist[ index ] 中index为列表的下标,一般下标的范围是0到len(mylist)-1. mylist[ index ]又称为下标变量。
mylist[0], mylist[1] ……分别访问列表第0个元素,第一个元素……
index还可以为负数:mylist[-1], mylist[-2]……分别访问列表倒数第一个元素,倒数第二个元素……(为负数时index最大为-1)
4.列表截取[start:end]
mylst[start:end] 截取范围是start到end-1,构成一个列表。
>>>mylst= [0,1,2,3,4,5]
>>>mylst[2,4]
[2, 3]
若start和end省略,则start默认为0,end默认为列表最后一个下标
start和end也可以为负数,若负数为-n则换成是-n+len(mylist)即可
>>>mylist[:3]
[0, 1, 2]
>>>mylist[2:]
[2, 3, 4, 5]
>>>mylist[:]
[0, 1, 2, 3, 4, 5]
>>>mylist[-4:-2]
[2, 3]
若start>end,则mylist返回一个空列表
>>>mylist[3:2]
[]
5.列表解析
列表解析由多个方括号组成,方括号内包含后跟一个for子句的表达式,之后是0或多个for或if子句。例如:
>>>list1 = [x for x in range(5)]
>>>list1
[0, 1, 2, 3, 4]
>>>list2 = [0.5*x for x in list1]
>>>list2
[0.0, 0.5, 1.0, 1.5, 2.0]
>>>list3 = [x for x in list2 if x < 1.5]
>>>list3
[0.0, 0.5, 1.0]
6.列表方法
append(x: object) :None | 将元素添加到列表结尾 |
count(x: object): int | 返回元素x在列表中出现的次数 |
extend(lst: list): None | 将列表 l 中的所有元素追加到列表中 |
index(x: object): int | 返回x在列表中第一次出现的下标 |
insert(index: int, x:object):None | 将元素x插入列表中指定下标处 |
pop(i): object | 删除给定位置的元素并返回它。参数 i 可选,若没有指定,则删除并返回列表中的最后一个元素 |
remove(x: object): None |
删除列表中第一次出现的x |
reverse(): None | 将列表中的所有元素倒序(不是排序) |
sort(): None | 将列表中的元素升序排序(注意:是排序) |
以上代码如下:
>>> list1 = [2, 3, 4, 1, 32, 4]
>>> list1.append(19)
>>> list1
[2, 3, 4, 1, 32, 4, 19]
>>> list1.count(4)
2
>>> list2 = [99, 54]
>>> list2.extend(list1)
>>> list2
[99, 54, 2, 3, 4, 1, 32, 4, 19]
>>> list2.index(4)
4
>>> list2.insert(1, 25)
>>> list2
[99, 25, 54, 2, 3, 4, 1, 32, 4, 19]
>>> list2.pop() #删除最后一个位置的元素
19
>>> list2
[99, 25, 54, 2, 3, 4, 1, 32, 4]
>>> list2.pop(2) #删除指定位置的元素,这里删除下标为2的元素
54
>>> list2
[99, 25, 2, 3, 4, 1, 32, 4]
>>> list2.remove(4)
>>> list2
[99, 25, 2, 3, 1, 32, 4]
>>> list2.reverse() #将原序列倒过来
>>> list2
[4, 32, 1, 3, 2, 25, 99]
>>> list2.sort() #将原序列升序排序
>>> list2
[1, 2, 3, 4, 25, 32, 99]