Python--------List(列表)
目录
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
列表就像是数组
在python中创建一个列表时,解释器会在内存中创建一个类似数组的数据结构来存储数据,数据项自下而上堆放。类似于其他编程语言中的数组技术,堆栈中的第一个Index为0,第二个为1
movies=['The Holy Grail','the life of Brain']
movies就是一个列表
The_first_movie_name=movies[0]
The_second_movie_name=movies[1]
这样就把字符串‘The Holy Grail’赋值给The_first_name,'the life of Brain'赋值给The_second_movie_name
列表List有两种创建方法:
1. theFrist_list=list()
2. theSecond_list=[]
这两种没有什么区别,看个人习惯而定
List可以存放不同类型的数据
你可以在List中存放int类型的,然后再存放String字符串,甚至还可以镶嵌List
a_list=[50,'一二三',['三二一',50]]
你还可以在List中存放class类型数据
List列表的基本操作
1.向列表中添加数据 list.append(数据)
append会将数据自动添加到list的末尾去
2.去除list中的数据 list.pop(index)
去除list中Index的数据并返回
3.去除list中的指定数据
list.remove(数据)
如果数据并不存在list中,python会抛出异常错误
4.合并两个list
a=[1,2]
b=[4,5]
a.extend(b)
遍历查看List的元素
处理每一个列表项是一个相当常见的需求,所以python通过内置的for循环可以很方便的做到这一点
其结构如下: for 目标标识符 in 列表 :
代码操作
python会将列表中的每一项逐一赋值给目标标识符,这一个操作和java的for-each操作类似
name_list=['小明','小华','小芳']
for name in name_list:
print(name)
如何遍历列表中的列表?
name_list=['小明',['小芳','女',19],['小华','65kg']]
假如我们用普通的for 循环遍历会有如下结果
你会发现遍历出来还是List
解决之道——递归!!!
def get_name(name_list):
for name in name_list:
#name_list为输入参数
if isinstance(name,list):
#判断参数是否为列表
#如果为列表执行以下操作
get_name(name)
else:
#否则执行下面操作
print(name)
通过递归的方法,可以把很多复杂的代码变为简单,递归函数不需要改变任何就可以正确地处理任意深度的镶嵌列表
如何统计list中出现频率最大的元素?
from collections import Counter
worlds=['hello','world','hello','a','b','b','b']
world_counts=Counter(worlds)
count_list=world_counts.most_common()
print(count_list)
这里我们要导入python系统自己带的collecitons模块中的Counter
你把你要统计的List传入给Counter
然后调用它的most_commmon()函数,其中括号中可以输入你想统计频率最高的哪几个元素(频率由高往低),不填默认是全部
其中world_counts是一个dict类型,所以你可以直接查看单个单词的出现次数
print(world_counts['hello'])