Python基础语法(4)
List (续)
List的初始化
list01=[i for i in range(10)]
#声明一个List,List中的值为0~9
对List的操作
-
访问输出
print(list01[4]) #直接输出数组的4号元素
-
改变List中的值
list01[0]=20
-
遍历数组
#直接输出 print(list01) #直接遍历元素输出 for i in list01: print(i) #遍历List的索引,根据索引输出元素 for i in range(len(list01)): print(list01[i])
-
List截取
#截取第一个元素 list01[0] #截取最后一个元素 list01[-1] #截取3~5 list01[3:6] #截取3到最后 list[3:] #截取所有 list01[:] #反向输出 list01[::-1]
-
List数据处理
#排序 list01.sort()#默认按照数组中的第一个元素升序排序。 list01.sort(reverse=True)#降序排序。 #reserse是反转方法 #List中各元素求和 sum(list01) #找List中的最大值 max(list01) #找List中的最小值 min(list01) #求平均数 print(sum(li03)/len(li03))
-
判断数组中是否存在某元素
1.index()方法
list01.index('hello')
如果存在,则返回其在List中的索引值,不存在则报错。
2. count()方法list01.count('hello')
-
count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数返回List中元素的个数,若不存在则返回0。
3. in 方法print('hello' in list01)
该方法返回bool类型的值,若存在返回True,不存在返回False。
- 清空数组
- clear()方法
- 将List赋为空
List中的方法:
-
append
在List的尾端添加单个元素。
代码示例:fruits=['1','3','2'] fruits.append('water')
输出结果为:['1','3','2','water']
-
extend
向原List追加一个集合,单个元素时要用中括号括起来,以证明它是集合。
代码示例:price=[12,23,14] fruits.extend(price)
输出结果: ['1','3','2',12,23,14]
-
使用“+”来给List添加元素,称之为“合并”
合并可加在前面或后面
代码示例:new_fruits=fruits+['haha'] new_fruits=['haha']+fruits
输出结果:
['1','3','2','haha']
['haha','1','3','2'] -
insert插入元素(不建议使用)
在a位置插入b
代码示例:fruits.insert(2,3)
输出结果:['1','3','3','2']
-
删除元素
-
remove()
在List内移除括号内的元素。
代码示例:fruits.remove('3')
输出结果:['1','3','2']
remove只会移除List中发现是第一个符合条件的元素
-
pop()
在原List中删除对应索引的元素,括号内要填入要删除元素的索引。
代码示例:list01=['h','e','l','l','o'] list01.pop(2) print(list01)
输出结果: ['h','e','l','o']
-
del
删除缩写的元素。
代码示例:list01=['h','e','l','l','o'] del list01[1] print(list01)
输出结果: ['h','l','l','o']
-
队列
使用队列需要先导入"deque"
代码示例:
from _collections import deque
将List转化为队列:
fruits=['orange','apple','banana']
quque=deque(fruits)
此时,quque就是一个值为fruits的队列。
quque.append('after')# 在对队列的右端添加元素"after"
quque.appendleft('before')# 在队列的左端添加元素"before"
quque.pop() # 弹出队列的最后一个元素 #先进后出
#对原数组操作,没有产生新数组,效率高
append() + popleft() 来控制列表,先进先出,此时形成队列数据结构
append() + pop() 形成后进先出(栈)(弹夹)数据结构
list01=list(quque)#将队列转化为List
二维List
当一个List的元素还是List时,称这个List为二维List。
也可以通过查"["的重数来判断是几维List
下面列举一个二维List根据其元素中的一个元素来进行排序的小例子。
demo
将books这个二维数组依据价格进行升序排序。
代码:
#声明一个二维List
books=[
['三国演义','罗贯中',100,'中国人民出版社'],
['西游记','吴承恩',120,'中国人民出版社'],
['红楼梦','曹雪芹',20,'中国人民出版社'],
['水浒传','施耐庵',180,'中国人民出版社']]
#获取二维List的长度
long=len(books)
#声明一个空List用来存放取出来的各书的价格以及其所在元素的索引
sort=[]
for i in range(long):#遍历books的索引
li=[books[i][2],i]#将价格,对应的索引值存入数组li
sort.append(li)#将每次获取的li存入sort中。
sort.sort()#将二维数组sort按照其第一各元素(价格),进行升序排序
#遍历sort中的元素
for i in sort:
print(books[i[1]])#遍历输出
元祖
元祖和List表示形式很相近,只是将"[]",变为了"()"
元祖可以看成是特殊的List,元祖中的元素不可修改。
可以通过将元祖转化为List,修改后在转化为元祖的方式来间接修改元祖。
由于切片操作并不会修改元数据,所以元祖也可以进行切片操作。