python学习笔记15_列表

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容