Python基础学习笔记叁

第八天

0. 数组概念:把同种类型的数据放在一起,按照下标进行索引。
因为 python 没有数据类型,所以按照这个节奏来说 python 是没有数组的。
但是 python 加入了更为强大的列表。
python 的列表可以把一切你能看到的东西,或者你从 python 中听说过的东西打包进去。
如果把数组比作一个集装箱的话,那么 python 的列表就是一个工厂的仓库了。

1. 创建列表
1.0 创建一个普通列表

member = ['子鹿','小布丁','黑夜','迷途','怡静']
member
['子鹿','小布丁','黑夜','迷途','怡静']
number = [1,2,3,4,5]
number
[1,2,3,4,5]

 

1.1 创建一个混合列表

mix = [1,"子鹿",3.14,[1,2,3]]
mix = [1,"子鹿",3.14,[1,2,3]]
mix
[1,"子鹿",3.14,[1,2,3]]

1.2 创建一个空列表

empty = []
empty
[]

2. 向列表添加元素
2.0 append() 方法

member.append('福禄娃娃')
member
['子鹿','小布丁','黑夜','迷途','怡静','福禄娃娃']
len(member) 6

这个点(.)表示范围,在对象中,属于对象的函数称为方法
append()这个方法属于member列表对象的方法。用点限制作用域
append() 方法向列表中添加两个元素时:
member.append('竹林小溪','Crazy迷恋')报错!

>>> member.append('竹林小溪','Crazy迷恋')
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
member.append('竹林小溪','Crazy迷恋')
NameError: name 'member' is not defined

这时引入第二个方法

2.1 extent() 方法

member.extent(['竹林小溪','Crazy迷恋'])

extent() 方法是将两个列表合成一个。所以不可以写成member.extent('竹林小溪','Crazy迷恋')。会报错,

2.2 insert()方法
member.insert(1,'牡丹')
两个参数第一个是插入列表的索引位置。第二个是插入的元素。
顺序索引从0开始。大多数编程语言从0开始是约定俗成的规范。

第九天

0.获取列表中的值
从列表中获取元素跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表索引值是从0开始的。

member = ['子鹿','牡丹','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
member[0]
'子鹿'
member[1]
'牡丹'

把元素 '子鹿' 和 '牡丹'换位置

temp = member[0]
member[0] = member[1]
member[1] = temp
member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']

 

1.删除列表中的值
1.0 remove()方法

member.remove('怡静')

remove要知道需要删除的元素的名字,不需要知道位置。

1.1 del
del 不是一个方法所以不需要加()

member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
del member[1] # 把子鹿从列表中删除
del member # 把这个列表删除

1.2 pop()
取出列表中的元素。
不传参数默认取出最后一个。
传参数,按照索引取出。
pop()方法是有返回值的。取出值并返回。

member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
name = member.pop()
name
'Crazy迷恋'

2 列表分片(Slice)
利用索引值,每次我们可以从列表获取一个元素,但是我们总是贪心的,如果一次性需要获取多个元素,有没有办法实现呢?利用列表分片,我们可以简单的实现这个要求。

member[1:3]
# 得到一个原来列表的拷贝。原列表并不改变。
# [1:3] 包含1,不包含3
member[:3]
# 从最开始到第二个
member[1:]
# 从第二个到最后一个
member[:]
#得到一个原来列表的拷贝。如果想对列表做出某些修改,又想保持原来的列表就可以进行拷贝。

第十天
0. 比较操作符

list1 = [123]
list2 = [234]
list1 > list2
False

list1 = [123,456]
list2 = [234,123]
list1 > list2
False

如果有多个元素优先比较第零个元素。只要有一个PK赢了就不用考虑后面的元素了。

1. 逻辑操作符

list3 = [123,456]
(list1 < list2) and (list1 == list3)
True

2. 连接操作符
列表跟字符串的拼接有相似性,但是不完全一样

list4 = list1 + list2
list4
[123, 456, 234, 123]

相当于把两个列表的值拼接在一起
这种情况相当于extent()方法来进行扩展列表。
+ 不能实现向列表中添加新元素的操作,会报错。
例如:
list1 + '子鹿'
+ 两边的类型必须相同 左边是列表右边也必须是列表

3. 重复操作符

list3 * 3
[123, 456, 123, 456, 123, 456]

# 重复操作符加上赋值操作符

list3 *= 3
list3
[123, 456, 123, 456, 123, 456]

list3 *= 5
list3
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]

4. 成员操作符

123 in list3
True

'子鹿' not in list3
True

123 not in list3
False

list5 = [123,['子鹿','牡丹'],456]
'子鹿' in list5
False
# in 无法直接判断列表里面的列表的元素,需要再人为的引入一层

'子鹿' in list5[1]
list5[1][1]
'牡丹'

5. 列表的其他方法

# 列表中这个元素出现的次数
list3.count(123)
15

# 返回这个值在列表中出现的位置
list3.index(123)
0
# 限定范围后这个元素出现第一次的索引值
list3.index(123,3,7) 范围,3,7
4

revers
# 列表元素顺序反转
list3.reverse()
list3
[456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123]

list6 = [4,2,5,1,9,23,32,0]
# 列表从小到大排序
list6.sort()
list6
[0, 1, 2, 4, 5, 9, 23, 32]

# 反向排序
list6.sort(reverse = True)
list6
[32, 23, 9, 5, 4, 2, 1, 0]

sort(func,key,reverse) 前两个默认规定排序。reverse 默认false 顺序排列。True 倒序

分片拷贝注:

list7 = list6[:]
list7
[32, 23, 9, 5, 4, 2, 1, 0]
list8 = list6
list8
[32, 23, 9, 5, 4, 2, 1, 0]

list6.sort()
list7
[32, 23, 9, 5, 4, 2, 1, 0]
list8
[0, 1, 2, 4, 5, 9, 23, 32]

赋值是给同一个地址贴一个新的标签而已。
拷贝分片是把原列表在内存中拷贝成一个新的同样的列表。

posted on 2019-03-22 14:07  相看两相厌  阅读(149)  评论(0)    收藏  举报

导航