序列,列表,迭代,range

2020-07-18  本文已影响0人  码农一号已就位

@[TOC]

序列

概念

分类

列表 List

列表内的内容是有序的
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依次类推,最后一个是

创建

list1 = [1,'2',3,'4']
list2 = [1,2,3,4]
list3 = ['spam', 'Spam', 'SPAM!']

访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print (list1[0])
print (list2[1:5])

以上实例输出结果:

  physics
  [2, 3, 4, 5]

切片

列表[起始 : 结束 : 步⻓]

list1 = [1,2,3,4,5,6]
print(list1[0:4:2]) #0开始,到索引值4结束,间隔为2
print(list1[0:5])  #0开始,到索引值5结束,间隔默认1
print(list1[::2])  #从头到尾,间隔数为2
print(list1[:5])  #从头到索引值5结束,间隔数默认1
print(list1[1:])  #从索引值1开始到尾,间隔数默认为1
print(list1[2::2])  #从索引值2开始到尾,间隔数为2
[1, 3]
[1, 2, 3, 4, 5]
[1, 3, 5]
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 5]

append

在列表末尾增加元素
例如:

list1 = [1,2,3,4,5,6]
print('修改前',list1)
list1.append(7)
print('修改后',list1)

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [1, 2, 3, 4, 5, 6, 7]

insert

insert(arg1,arg2) 像列表指定位置插⼊⼀个元素 参数1:要插⼊的位置 参数 2:要插⼊的元素
例如:

list1 = [1,2,3,4,5,6]
print('修改前',list1)
list1.insert(1,5) #1是要插入的位置,5是插入的元素
list1.insert(5,100)
print('修改后',list1)

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [1, 5, 2, 3, 4, 100, 5, 6]

extend

extend(iterable) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素 添加到列表中) 参数需要传递⼀个序列
例如:

list1 = [1,2,3,4,5,6]
print('修改前',list1)
list1.extend([7,8,9,10])
print('修改后',list1)

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

del

删除列表中的指定索引值的元素

list1 = [1,2,3,4,5,6]
print('修改前',list1)
del list1[-1] #删6
del list1[1:3] #删索引值1到三。2,3
print('修改后',list1)

结果

修改前 [1, 2, 3, 4, 5, 6]
修改后 [1, 4, 5]

pop

pop() 根据索引删除并返回指定元素
例如

list1 = [1,2,3,4,5,6]
print('修改前',list1)
list1.pop(2) #删除索引值为2的,3
print('修改后',list1)

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [1, 2, 4, 5, 6]

remove

remove() 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)
例如

list1 = [1,2,3,4,5,6,2]
print('修改前',list1)
list1.remove(2) 
print('修改后',list1)

通过索引和切片改

ist1 = [1,2,3,4,5,6]
print('修改前',list1)
list1[0] = 7
list1[1:3]=10,11,12,13 #可以将少的元素改为多个元素达到增加效果

print('修改后',list1)
list1[0:6:2] = 1,3,5
print('修改后后',list1) #当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致 否则报错
                        # Traceback (most recent call last)
                        

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [7, 10, 11, 12, 13, 4, 5, 6]
修改后后 [1, 10, 3, 12, 5, 4, 5, 6]

修改前 [1, 2, 3, 4, 5, 6]
修改后 [7, 10, 11, 12, 13, 4, 5, 6]
修改后后 [1, 10, 3, 12, 5, 4, 5, 6]

reverse

reverse翻转列表
例如:

list1 = [1,2,3,4,5,6]
print('修改前',list1)
list1.reverse()
print('修改后',list1)

结果:

修改前 [1, 2, 3, 4, 5, 6]
修改后 [6, 5, 4, 3, 2, 1]

sort

sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序,默认为正序,可以通过revers来控制升序或者降序
reverse: True降序;False 升序
例如:

list1 = [9,5,8,6,7,3,2]
print('修改前',list1)
list1.sort()
print('修改后升序',list1)
list1.sort(reverse=True)
print('修改后降序',list1)

结果:

修改前 [9, 5, 8, 6, 7, 3, 2]
修改后升序 [2, 3, 5, 6, 7, 8, 9]
修改后降序 [9, 8, 7, 6, 5, 3, 2]

通用操作

list1 = [1,2,3,4,5,6,6,6,7]
list2 = [8,9,10]
print(list1+list2)
print(list2*2)
print(list2 in list1)
print(list2 not in list1)
print(len(list1))
print(max(list1))
print(min(list1))
print(list1.index(5,0,7))
print(list1.count(6))

结果:

[1, 2, 3, 4, 5, 6, 6, 6, 7, 8, 9, 10]
[8, 9, 10, 8, 9, 10]
False
True
9
7
1
4
3

迭代for in

语法:

for 变量 in 序列(遍历的规则):
     代码块
list1 = [1,2,3,4,5,6,6,6,7]
for i in list1:
    print(i)
1
2
3
4
5
6
6
6
7

range

常常与for in 配合使用
使用【range(n)】就会生成一个从【0】到【n-1】的整数序列。
range(开始,结束,步长) (包括开始,不包括结束,步长就是间隔数)
例如:

for i in range(5):
    print(i)
print('************')
for i in range(0,10,2):
    print(i)

结果:

0
1
2
3
4
************
0
2
4
6
8
上一篇下一篇

猜你喜欢

热点阅读