文章目录
1.通过索引操作序列元素
>>>name=["sda","qwe","zxc","yui"]
>>>print(name[0])
sda
>>>print(name[-1]) #序列最后一个元素的索引是-1,倒数第二个是-2,以此类推
yui
2.分片操作:从序列A中获取子序列B
序列名 [ 开始索引:结束索引:步长 ]
>>>url="https://abcdefg.com"
>>>print(url[8:15])
abcdefg
>>>print(url[-5:-2])
g.c
>>>num=[0,1,2,3,4,5]
>>>print(num[3:6])
[3, 4, 5]
>>>print(num[-3:-1])
[3, 4]
>>>print(num[3:]) #省略结束索引则会获取到父序列的最后一个元素
[3, 4, 5]
>>>print(num[:3]) #省略开始索引则会从父序列的第一个元素开始获取
[0, 1, 2]
>>>print(num[:]) #全省略则会复制整个序列
[0, 1, 2, 3, 4, 5]
#设置步长
>>>print(num[0:6:2])
[0, 2, 4]
>>>print(num[6:1:-1]) #步长可以是负数(不能为0),分片会从序列右侧开始,此时开始索引要大于结束索引
[5, 4, 3, 2]
3.检查某个值是否属于一个序列
如果某个值属于一个序列,in运算符返回True,否则返回False
>>>num=[0,1,2,3,4,5]
>>>if 2 in num:
print("2属于num序列")
2属于num序列
4.序列的相加和乘法
序列的相加:将序列合并为一个
>>> num1=[0,1,2]
>>> num2=[3,4,5]
>>> num=num1+num2
>>> num
[0, 1, 2, 3, 4, 5]
序列的乘法:一个序列乘n即将原来的序列重复n次
>>> num=[1,2]
>>> print(num*5)
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
>>> print('hello'*5)
'hellohellohellohellohello'
5.序列的长度、最大值和最小值
>>> num=[0,1,2,-6,52]
>>> len(num)
5
>>> max(num)
52
>>> min(num)
-6
>>> max(1,5,8,3)
8
6.列表的基本操作
>>>s=["abc","mary","john"]
#列表元素赋值
>>>s[1]="Mike"
>>>print(s)
['abc', 'Mike', 'john']
#删除列表元素
>>>del s[2]
>>>print(s)
['abc', 'Mike']
#分片赋值
>>>s[1:]=['a','b','c']
>>>print(s)
['abc', 'a', 'b', 'c']
>>>name=list("Mike") #使用list函数将"Mike"转换为由字符组成的列表
>>>print(name)
['M', 'i', 'k', 'e']
>>>name[1:]=list("ary")
>>>print(name)
['M', 'a', 'r', 'y']
#在列表中插入一个列表 / 在列表中删除一些列表元素
>>>num=[0,1,2,7,8]
>>>num[3:3]=[3,4,5,6]
>>>print(num)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>>num[3:7]=[]
>>>print(num)
[0, 1, 2, 7, 8]
7.列表方法
append
在列表最后插入新的值。
count
用于统计某个元素在列表中出现的次数。
index
用于从列表中找出某个值第一次出现的索引位置。
clear
用于清除列表的内容。
>>> num=[0,1,2,3,3,3]
>>> num.append(4) #列表最后插入4
>>> print(num)
[0, 1, 2, 3, 3, 3, 4]
>>> print(num.count(3)) #统计3出现的次数
3
>>> print(num.index(3)) #3第一次出现的索引位置
3
>>> num.clear() #清空列表
>>> print(num)
[]
insert
用于将值插入到列表指定位置。
pop
用于移除列表中的元素(默认是最后一个元素),并返回该元素的值。
remove
用于移除列表中某个值的第一次匹配项。
reverse
用于将列表的元素反向存放。
sort
用于对列表进行排序(默认是升序),调用该方法会改变原来的列表。
>>> num=[7,2,6,0,9,4]
>>> num.insert(2,6) #在第3个位置插入6
>>> print(num)
[7, 2, 6, 6, 0, 9, 4]
>>> num.pop() #默认弹出最后一个元素
4
>>> print(num)
[7, 2, 6, 6, 0, 9]
>>> num.pop(1) #弹出第2个元素
2
>>> print(num)
[7, 6, 6, 0, 9]
>>> num.reverse() #反转列表
>>> print(num)
[9, 0, 6, 6, 7]
>>> num.sort() #列表排序(默认升序)
>>> print(num)
[0, 6, 6, 7, 9]
>>>num.sort(reverse=True) #降序排序
[9, 7, 6, 6, 0]
>>> num.remove(6) #移除第一个6
>>> print(num)
[9, 7, 6, 0]
copy
用于复制一个列表。
extend
用于在列表结尾插入另一个列表,也就是用新列表扩展原有的列表。有点类似列表相加,不过extend方法改变的是被扩展的列表,而列表相加产生了一个新列表。
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b) #列表a拼接列表b
>>> print(a)
[1, 2, 3, 4, 5, 6]
>>> bb=a.copy() #把列表a复制给bb
>>> print(bb)
[1, 2, 3, 4, 5, 6]
8.序列的相关操作函数
序列排序:sorted函数
>>>x=[0,7,9,6,6]
>>>y=sorted(x) #sorted函数是对列表的副本进行排序,原列表不变
>>>print(x)
[0, 7, 9, 6, 6]
>>>print(y)
[0, 6, 6, 7, 9]
序列反转:reversed函数
>>>num=reversed([1,2,3,4,5])
>>>for i in num:
print(i,end=' ')
Output:5 4 3 2 1
>>>num=[1,2,3,4,5]
>>>print(reversed(num))
Output:<list_reverseiterator object at 0x000001F31AE74FD0>
>>>print(list(reversed(num)))
Output:[5, 4, 3, 2, 1]
压缩序列:zip函数
用zip函数将两个或多个序列的对应元素作为一个元组放到一起。
若进行压缩的序列元素个数不相同,以元素个数最少的为准。
zip函数返回的序列形式比较复杂,所以不能直接print输出。
char=['a','b','c']
num=[1,2]
for i in zip(char,num):
print(i,end=' ') #Output:('a', 1) ('b', 2)
print(zip(char,num)) #Output:<zip object at 0x000002C6838A0448>
9.元组
元组和列表的区别:列表是可读写的,而元组是只读的。
num=() #创建一个空元组
num1=1,2,3 #或用括号括起来num1=(1,2,3)
print(num1) #创建元组 Output:(1, 2, 3)
value=40, #value=(40,)
print(value) #创建一个值的元组,Output:(40,)
print(5*(16,)) #生成5个同样值得元组,Output:(16, 16, 16, 16, 16)
#tuple函数将序列转换为元组
print(tuple([1,2,3])) #Output:(1, 2, 3)
print(tuple("hello")) #Output:('h', 'e', 'l', 'l', 'o')
10.创建一维列表List
book=[0 for i in range(9)] #创建长度为9的的一维列表并初始化为0
print(book)
#Output: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
11.创建二维列表List
第一种方法:
num=[[0 for i in range(3)]for i in range(4)] #创建4行3列的列表,初始化为0
print(num)
#Output:[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
num[2][1]=5
print(num)
#Output:[[0, 0, 0], [0, 0, 0], [0, 5, 0], [0, 0, 0]]
第二种方法:
num=[[0]*3 for i in range(4)] #创建4行3列的列表,初始化为0
print(num)
#Output:[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
num[2][1]=5
print(num)
#Output:[[0, 0, 0], [0, 0, 0], [0, 5, 0], [0, 0, 0]]
num=[[]for i in range(3)]
print(num)
#Output:[[], [], []]
num[0].append(4)
num[0].append(5)
print(num)
#Output:[[4, 5], [], []]
输入一个二维矩阵:
n,m=map(int,input().split())
G=[]
for i in range(n):
a=map(int,input().split())
G.append(list(a))
print(G)
print(G[2][3]) #可用G[i][j]进行随机访问
#input:
3 4
2 5 6 4
3 5 8 9
1 4 25 7
#output:
[[2, 5, 6, 4], [3, 5, 8, 9], [1, 4, 25, 7]]
7
12.二维列表的遍历
num=[[2 for i in range(3)]for i in range(4)] #创建了一个4行3列的二维列表
print(num)
#Output:[[2, 2, 2], [2, 2, 2], [2, 2, 2], [2, 2, 2]]
#第一种遍历方法:
for i in range(len(num)):
for j in range(len(num[i])):
print(num[i][j],end=" ")
print()
#Output:
2 2 2
2 2 2
2 2 2
2 2 2
#第二种遍历方法:
for i in num:
for j in i:
print(j,end=" ")
print()
#Output:
2 2 2
2 2 2
2 2 2
2 2 2