python 笔记15
1.列表
1.1 提问:要把所有人的名字存储下来,有什么办法?
用变量名赋值吗?
name0 = 'a'
name1 = 'b'
name2 = 'c'
name3 = 'd'
name4 = 'e'
这样做有很多弊端,我如果要找d,却不能通过c或e的关系来找他们的关系。
names = 'a b c d e'
这样做的话,想找一个人,却会出现所有人的名字。(方便存储但是不好取用)
为了应对这种状况,有一种新的数据类型:列表list 用中括号[]创建列表。
如:
a = ['a','b','c','d','e']
这种写法有位置关系吗?
有,第一位为:0
有了这个列表[a],就可以对它进行
增删改查!
1.2 增删改查
1.2.1 增以及切片介绍
a = ['a','b','c','d','e']
print(a[1:4]) # b c d
如果不知道一共有多少个,想取后面所有值:
print(a[1:]) # b c d e
如果想取到倒数第二个值:
print(a[1:-1]) # b c d
如果想跳着取: 第三位是步长,默认步长为:1 方向:从左往右
print(a[1:-1:2]) # b d
如果想要从右向左取呢: 步长为为:2 方向:从右往左
print(a[3::-2]) # d b
append , insert
append:
a = ['a','b','c','d','e']
a.append('f')
print(a)
输出: a,b,c,d,e,f
insert:
a.insert(插入的位置,插入的值)
a = ['a','b','c','d','e']
a.insert(1,'f')
print(a)
输出: a,f,b,c,d,e
1.2.2 修改
修改1个:
a = ['a','b','c','d','e']
a[1]='f'
print(a)
输出: a,f,c,d,e
修改2个:
a = ['a','b','c','d','e']
print(a)
a[1:3]=['1''2']
输出:
a,1,2,d,e
1.2.3 删除
三种方式:
- remove
- pop
- del
.remove: 纯删除,不能切片
a = ['a','b','c','d','e']
a.remove('c') //或者 a.remove(a[2])
print(a)
输出:a,b,d,e
.pop: 删除后有返回值
a = ['a','b','c','d','e']
b = a.pop(1)
print(b)
输出:c
del:可删除任何项目
a = ['a','b','c','d','e']
del a[0]
print a
输出:b c d e
或:
a = ['a','b','c','d','e']
del a
print a
输出: “a没有定义”
2.列表内置方法
.count计算某元素出现次数:
t = ['to','be','or','not','to','be'].count('to')
print(t)
输出:2
也可用于查是否存在某个值。
extent()把元素相加
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a)
print(b)
输出:
a = 1,2,3,4,5,6
b = 4,5,6
.index()查找元素在列表中的位置
a = ['a','a','b','c','d','e']
print(a.index('a'))
输出: 0 (默认取第一个)
如果想取'第二个 a'的位置呢?
把'第一个切片,得到一个小列表。
取到'第二个a'的位置加上切片的位数,就是'第二个a'在大列表中的位置:
a = ['a','a','b','c','d','e']
first_a_index = a.index('a')
little_list = a[first_a_index+1:]
second_a_index = little_list.index('a')
second_a_inex_in_big_list = first_a_index + second_a_index +1
print("second a :",a[second_a_index_in_big_list])
输出:sencond a : a
这种方法很麻烦,没有必要取,一般也不会遇到,此法仅供学习参考。
reverse,将顺序倒过来
a = ['a','b','c','d','e']
a.reverse
print(a)
输出: e d c b a
sort :用于在原位置对列表进行排序
x = [4,5,3,6,2,1]
x.sort()
print(x)
输出: 1 2 3 4 5 6
按照ascii码排序的,如果是字母,排列顺序如下:ABC……Zabcd……xyz .
如果要倒着输出呢?
方法一:
添加:
x.reverse()
print(x)
方法二:
利用sort自身特点即可完成倒叙:
x = [4,5,3,6,2,1]
x.sort(reverse=True)
print(x)
(默认正序sort(reverse=False))
sorted
a = [1,2,4,5]
b = sorted(a)
print(b)
判断一个值在不在列表里
方法一:利用count判断存不存在
a = ['a','b','c','d','e']
print (a.count('f'))
输出:0
方法二:利用print判断存不存在
a = ['a','b','c','d','e']
print('f' in a)
输出:False
网友评论