列表 元祖 字典 集合 一 、列表(list) 在python中列表是可变的序列。在形式上列表的所有元素都放到一个中括号中 [] 两个相邻的元素使用逗号隔开小写的 , 逗号 在内容上,列表中可以放置任意类型的元素在列表中,并且同一个列表中元素的类型可以不同,因为他们之间没有任何的关系。 列表是非常的灵活的 列表在以后的开发中是使用最常见的 列表常用的操作 增 删 改 查 创建一个列表 可以直接创建赋值一个列表 也可以直接创建一个空列表 举例: list1 = ['小黑',[['小黄'],'小白'],'灰灰',15,15.8] #直接赋值创建一个列表 列表中还可以有列表 在有列表 也可以放置其他数据类型,整形,浮点型 print(type(list1)) #这里查询一下list1是什么数据类型 输出() #显示是列表类型 list2 = [] #也可以直接创建一个空的列表 空列表后期用处也挺多的 直接赋值一个空列表就可以 ,不会报错的 访问列表元素 可以直接使用print内置函数输出列表,这样就直接显示出来列表中的所有元素, 也可以使用下标索引的方式来访问列表中的元素 举例: list1 = ['小黑',[['小黄'],'小白'],'灰灰',15,15.8] #创建一个列表 print(list1[1][1][1]) #这里直接使用了下标索引的方式访问了列表中的元素!看看显示了什么内容吧! 输出(白) #没错 这里直接根据索引访问了索引值为1-1-1下标的值 就是白 因为索引是从0开始数数的 print(list1) #这里就不多介绍了 直接显示所有的内容 遍历列表 1.遍历列表可以直接使用 for 循环来实现 方法很简单 下面举例 for i in list1: print(i) 输出(小黑 '[['小黄'], '小白'] ' 灰灰 15 15.8 #这里不方便显示 就是这样的显示效果 2.使用 for 循环和enumerate() 函数实现 使用这种方法可以实现同时输出索引值和元素的内容。 for i,p in enumerate(list1): print(i+1,p) #这里i 输出的是list1 中对应元素索引的下标 p 显示的是list1中的元素 输出(1 小黑 2 [['小黄'], '小白'] 3 灰灰 4 15 5 15.8 ) 列表的添加 append() 函数 来给列表的末尾追加一个新的元素进去 列表的添加也可以使用+号来将两个列表相加 但是执行速度比较慢 所以建议使用 append函数添加 extend() 列表跟列表的合并 括号里写入要合并的列表 举例1: list1 = ['网管','网通','电信','移动','中信'] #创建一个列表 list1.append('python 最牛') # 在列表中追加一个元素 可以是任意类型的 print(list1) 输出(['网管', '网通', '电信', '移动', '中信', 'python 最牛']) #方法非常的简单好用 效果杠杠的! 举例2: list2 = ['足球','篮球','排球','羽毛球','乒乓球'] list1.extend(list2) print(list1) 输出(['网管', '网通', '电信', '移动', '中信', 'python 最牛', '足球', '篮球', '排球', '羽毛球', '乒乓球']) 太厉害了 直接就合并成为一个列表了 列表的修改 列表修改元素也很简单 直接根据索引的下标去更改直接赋值新的值就可以了 列表的删除 列表的删除可以直接使用索引的下标使用 del 来删除指定下标的值 也可以使用内置函数的remove() 函数来删除指定的元素 不过删除的时候最好检查一遍是否存在 不然会报错的! 举例: list2 = ['足球','篮球','排球','羽毛球','乒乓球'] list3 = '臭球 'if list2.count(list3)>0 #检索是否存在 存在时大于0 执行下面的代码 list2.remove(list3) print(list2) 列表常用操作 append() 追加 在列表的末尾追加一个新的元素 extend() 合并 将另一个列表合并到前面的列表中 insert() 插入 将一个新的元素插入到指定的索引下标位置 count() 查找统计 查找指定元素是否存在 不存在返回0 存在返回出现次数 index() 查找 查找指定的元素是否存在,返回元素的下标 remove() 删除 删除列表中的指定的元素 使用时要先查找是否存在 不然不存在报错 del() 删除 根据索引下标 值 列表 都可以删除 这个功能不常用 属于强行删除一切 毁田灭地的功能 小心使用 pop() 删除 删除并返回指定下标对应的值 有返回值 clear() 清空 清空整个列表 成为一个空的列表 copy() 复制 复制一个列表生成一个新的列表 sort() 排序 采用规则 先大写字母 然后小写字母 可以是升序也可以是降序 默认是升序 括号里添加(reverse = True)是降序 sorted() 排序 sort排序对中文的识别不是很好 所以中文排序建议使用sorted() 使用方法 pirnt(sorted(list1)) reverse() 翻转 翻转列表元素的升序或降序 sum() 计算 计算列表元素中的总和 列表中需要都是整形或者浮点型才可以使用 len() 统计 统计列表的元素的个数 根据字符统计 最后补充一个列表推导式 方便以后查阅 list1 = [random.randint(10,100) for i in range(10)] #生成随机数10--100 的10个数 list2 = [int(i*0.5) for i in list1] #打折活动乘以0.5折 list3 = [i for i in list1 if i>20] #输出大于20的值 list4 = [int(i*0.8) for i in list1 if i>20] #输出大于20的值 乘以0.8折' 二维列表推导式 list5 = [[y for y in range(5)]for i in range(5)] 元祖 元祖与列表类似,元祖用()小括号 元祖也可以放置任意类型的数据 不同之处是元祖的内容不能更改 但是元祖之中的列表可以根据索引改变,但是改变的只是元祖中的列表元素,元祖是没办法改变的 元祖是不可变序列 ,列表是可变序列 即元祖中的元素不可以单独修改,而列表则可以随意修改 元祖的创建 tuple1 = () #创建跟列表的方法一样 这里不多介绍! 元祖的访问 元祖的访问跟列表同样 可以根据索引下标访问,也可以直接打印 for 循环 for enumerate()函数访问 修改元祖 元祖是不可变序列,所以我们没有办法对他的单个元素进行修改, 但是元祖也不是完全不能修改的,我们可以对元祖直接重新赋值,形成一个新的元祖 元祖可以使用 + 号给元祖添加新的元素 字典 字典与列表类似,也是可变序列,不过与列表不同的是他是无序的可变序列, 保存的内容是以 键-值对 的形式存放的,类似于新华字典,它可以把拼音和汉字关联起来 通过音节表快速的找到想要的汉子, 其中新华字典音节表相当于键(key) 对应的汉子相当于值(value) 键是唯一的。而值可以有多个。