python笔记(3)---列表
lst = ["bob","jack","马云","马化腾","王健林"] del lst[1:3] print(lst)
一、列表索引和切片
lst = ["移动硬盘", "手机", 110, True, False, ["人民币", "美金", '欧元']] lst = ["海上钢琴师", "奥特曼", "咒怨", "舌尖上的中国", "穹顶之下", "金刚"] print(lst[3][2]) # 上
print(lst[-2]) # 穹顶之下
print(lst[1:4]) # ['奥特曼', '咒怨', '舌尖上的中国']
print(lst[-3:-1]) # 顾头不顾尾
print(lst[1::2])
print(lst[-1:-5:-2])
二、列表增加
2.1 append
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] 在屁股后面添加
lst.append("黄宏") # 在原有的基础上进行的操作
2.2 insert
# 在xxx位置插入xxxx内容
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] lst.insert(1,"王力宏") print(lst) ["赵四","王力宏","施瓦星格", "黄渤", "郭达森", "赛利亚"]
2.3 extend
# 迭代添加
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
lst.extend("麻花藤")
print(lst)
["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚","麻","花","藤"]
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
lst.extend(["麻花藤", "马云"])
print(lst)
["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚","麻花藤", "马云"]
2.4 如果对列表中空的 slice 赋值,就变成了为列表插入元素
# 将第3个到第3个(不包含)元素赋值为新列表的元素,就是插入
b_list[2: 2] = ['x', 'y']
print(b_list)
# [1, 'a', 'x', 'y', 'b', 4]
三、列表删除
3.1 pop()
# 根据索引删除元素
lst = ["bob","jack","马云"]
data = lst.pop() #pop()不加索引,默认删除末尾元素,并返回被删除的数据
print(data)
"马云"
print(lst)
["bob","jack"]
3.2 remove()
lst = ["bob","jack","马云"]
lst.remove("bob") # 删除元素.
lst.remove("刘能") # 如果不存在会报错
3.3 del
# 切片删除
lst = ["bob","jack","马云","马化腾","王健林"]
del lst[1:3]
print(lst)
["bob","马化腾","王健林"]
3.4 如果将列表其中一段赋值为空列表,就变成了从列表中删除元素
# 将第3个到第6个(不包含)元素赋值为空列表,就是删除
b_list[2: 5] = []
print(b_list) # [1, 'a', 4]
四、列表修改
4.1 对元素赋值
a_list = [2, 4, -3.4, 'crazyit', 23]
# 对第3个元素赋值
a_list[2] = 'fkit'
print(a_list)
# [2, 4, 'fkit', 'crazyit', 23]
4.2 对列表中间一段赋值
b_list = list(range(1, 5))
print(b_list)
# 将第2个到第4个(不包含)元素赋值为新列表的元素
b_list[1: 3] = ['a', 'b']
print(b_list)
# [1, 'a', 'b', 4]
4.3 使用字符串赋值,Python 会自动把字符串当成序列处理,其中每个字符都是一个元素。
# Python会自动将str分解成序列 b_list = list(range(1, 5)) b_list[1: 3] = 'Charlie'
print(b_list) # [1, 'C', 'h', 'a', 'r', 'l', 'i', 'e']
4.4 在使用 slice 语法赋值时,也可指定 step 参数。但如果指定了 step 参数,则要求所赋值的列表元素个数与所替换的列表元素个数相等
c_list = list(range(1, 10))
# 指定step为2,被赋值的元素有4个,因此用于赋值的列表也必须有4个元素
c_list[2: 9: 2] = ['a', 'b', 'c', 'd']
print(c_list) # [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']
五、列表常用方法
5.1 count()
# 统计元素出现的次数
a_list = [2, 30, 'a', [5, 30], 30]
# 计算列表中30的出现次数
print(a_list.count(30))
# 计算列表中[5, 30]的出现次数
print(a_list.count([5, 30]))
5.2 index()
# 查找元素的index
a_list = [2, 30, 'a', 'b', 'crazyit', 30]
# 定位元素30的出现位置
print(a_list.index(30))
# 从索引2处开始、定位元素30的出现位置
print(a_list.index(30, 2))
# 从索引2处到索引4处之间定位元素30的出现位置,因为找不到该元素,会引发 ValueError 错误
print(a_list.index(30, 2, 4))
运行结果为:
1
5
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 7, in <module>
print(a_list.index(30, 2, 4)) # ValueError
ValueError: 30 is not in list
5.3 reverse()
# reverse() 方法会将列表中所有元素反向存放
a_list = list(range(1, 8))
# 将a_list列表元素反转
a_list.reverse()
print(a_list)
运行结果为:
[7, 6, 5, 4, 3, 2, 1]
5.4 sort()
# sort() 方法用于对列表元素进行排序
语法结构:
listname.sort(key=None, reserse=False)
- key 参数用于指定从每个元素中提取一个用于比较的键。例如,使用此方法时设置 key=str.lower 表示在排序时不区分字母大小写。
- reverse 参数用于设置是否需要反转排序,默认 False 表示从小到大排序;如果将该参数设为 True,将会改为从大到小排序。
例如如下代码:
a_list = [3, 4, -2, -30, 14, 9.3, 3.4]
# 对列表元素排序
a_list.sort() print(a_list) b_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang'] # 对列表元素排序:默认按字符串包含的字符的编码大小比较 b_list.sort() print(b_list) # ['Erlang', 'Go', 'Kotlin', 'Python', 'Ruby', 'Swift']
运行结果为:
[-30, -2, 3, 3.4, 4, 9.3, 14]
['Erlang', 'Go', 'Kotlin', 'Python', 'Ruby', 'Swift']
如下代码示范了 key 和 reverse 参数的用法:
b_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang'] # 指定key为len,指定使用len函数对集合元素生成比较的键,也就是按字符串的长度比较大小 b_list.sort(key=len) print(b_list) # 指定反向排序 b_list.sort(key=len, reverse=True) print(b_list)
运行结果为:
['Go', 'Ruby', 'Swift', 'Python', 'Kotlin', 'Erlang']
['Python', 'Kotlin', 'Erlang', 'Swift', 'Ruby', 'Go']
上面两次排序时都将 key 参数指定为 len,这意味着程序将会使用 len() 函数对集合元素生成比较大小的键,即根据集合元素的字符串长度比较大小。
注意,采用 sort() 方法对列表进行排序时,对中文支持不好,其排序结果与常用的音序排序法或者笔画排序法都不一致,因此,如果需要实现对中文内容的列表排序,还需要重新编写相应的方法进行处理,而不能直接使用 sort() 方法。
python笔记(3)---列表的更多相关文章
- python笔记之列表与元组函数和方法使用举例
在学习列表之前先了解了raw_input和input的区别:(仅适用于版本2,版本3中raw_input和input合并,没有raw_input) input的语法为:input("str& ...
- python笔记-list列表的方法
#!usr/bin/python # -*- coding: utf-8 -*- # 存储5个人的年龄,求他们的平均年龄 age1 = 18 age2 = 15 age3 = 38 age4 = 20 ...
- python笔记之列表
python中列表使用list类. 创建一个列表:list1 = [1,2,3,4]使用逗号隔开每个元素,使用方括号包含起来,创建空列表直接使用list2 = [] #!/usr/bin/env py ...
- 第二周Python笔记 数据类型 列表 字典
列表,拉锁式儿合并. [ [a,b] for a,b in zip(list1,list2)] #最笨的 a=[1,2,3,4,5] b=[2,3,4,5,6] d=[] for i in range ...
- python学习笔记整理——列表
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
- Python笔记——基本数据结构:列表、元组及字典
转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...
- python笔记(1)--序列(列表 元组 range)
一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...
- Python 学习笔记(1)Python容器:列表、元组、字典与集合
Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者 list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list( ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
随机推荐
- jQuery file upload callback options
autoUpload By default, files added to the widget are uploaded as soon as the user clicks on the star ...
- 设计模式(4): 给组件实现单独的store
概述 最近最近做项目的时候总会思考一些大的应用设计模式相关的问题,我把自己的思考记录下来,供以后开发时参考,相信对其他人也有用. 组件自身的store 我们在开发组件的时候,时常都有这种需求,就是希望 ...
- Linux_OpenSSH远程连接
目录 目录 SSH server SSH服务属性 SSH协议执行原理 SSH连接方式 ssh Commands scp commands sftp commands SSH在生产环境中的使用 系统间备 ...
- PARAMETERS对象
1. PARAMETERS的基本语法及定义 PARAMETERS可以参照数据字典字段或自定义数据类型创建文本输入域及单选框/复选框等, PARAMETERS只能创建一个单一的输入域且最多只能输入行,其 ...
- 数据科学家人才危机现象,是FOMO还是Silver?
数据科学家人才危机现象,是FOMO还是Silver? 数据科学家的人才短缺和薪水高涨已经达到了顶板,未来还会持续下去吗? 在过去几年中,高级分析(#大数据#分析)空间一直经历着严重的FOMO(害怕错过 ...
- 【Qt开发】【Linux开发】QT设置环境变量QWS_DISPLAY
QT设置环境变量QWS_DISPLAY 当应用程序./myQtApp -qws启动时,会去检测QWS_DISPLAY这个环境变量, 判断界面最终显示在哪个framebuffer中, 如果是虚拟的fra ...
- nginx rewrite + 排错方法 + server_name 172.19.134.43
upstream space.two.cn { ip_hash; #ip hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题. serve ...
- if练习
练习: 1.简述变量命名规范 1.变量名由字母.下划线.数字组成 2.变量名不能以数字开头 3.变量不能使用python中的关键字 4.变量不能使用中文和拼音 5.区分大小写 6.变量名要具有描述性 ...
- 最长上升子序列(LIS) Medium1
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...
- 数塔 Medium
Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...