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)---列表的更多相关文章

  1. python笔记之列表与元组函数和方法使用举例

    在学习列表之前先了解了raw_input和input的区别:(仅适用于版本2,版本3中raw_input和input合并,没有raw_input) input的语法为:input("str& ...

  2. python笔记-list列表的方法

    #!usr/bin/python # -*- coding: utf-8 -*- # 存储5个人的年龄,求他们的平均年龄 age1 = 18 age2 = 15 age3 = 38 age4 = 20 ...

  3. python笔记之列表

    python中列表使用list类. 创建一个列表:list1 = [1,2,3,4]使用逗号隔开每个元素,使用方括号包含起来,创建空列表直接使用list2 = [] #!/usr/bin/env py ...

  4. 第二周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 ...

  5. python学习笔记整理——列表

    Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...

  6. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

  7. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  8. python笔记(1)--序列(列表 元组 range)

    一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...

  9. Python 学习笔记(1)Python容器:列表、元组、字典与集合

    Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者 list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list( ...

  10. 20.Python笔记之SqlAlchemy使用

    Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...

随机推荐

  1. jQuery file upload callback options

    autoUpload By default, files added to the widget are uploaded as soon as the user clicks on the star ...

  2. 设计模式(4): 给组件实现单独的store

    概述 最近最近做项目的时候总会思考一些大的应用设计模式相关的问题,我把自己的思考记录下来,供以后开发时参考,相信对其他人也有用. 组件自身的store 我们在开发组件的时候,时常都有这种需求,就是希望 ...

  3. Linux_OpenSSH远程连接

    目录 目录 SSH server SSH服务属性 SSH协议执行原理 SSH连接方式 ssh Commands scp commands sftp commands SSH在生产环境中的使用 系统间备 ...

  4. PARAMETERS对象

    1. PARAMETERS的基本语法及定义 PARAMETERS可以参照数据字典字段或自定义数据类型创建文本输入域及单选框/复选框等, PARAMETERS只能创建一个单一的输入域且最多只能输入行,其 ...

  5. 数据科学家人才危机现象,是FOMO还是Silver?

    数据科学家人才危机现象,是FOMO还是Silver? 数据科学家的人才短缺和薪水高涨已经达到了顶板,未来还会持续下去吗? 在过去几年中,高级分析(#大数据#分析)空间一直经历着严重的FOMO(害怕错过 ...

  6. 【Qt开发】【Linux开发】QT设置环境变量QWS_DISPLAY

    QT设置环境变量QWS_DISPLAY 当应用程序./myQtApp -qws启动时,会去检测QWS_DISPLAY这个环境变量, 判断界面最终显示在哪个framebuffer中, 如果是虚拟的fra ...

  7. nginx rewrite + 排错方法 + server_name 172.19.134.43

    upstream space.two.cn { ip_hash; #ip hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题. serve ...

  8. if练习

    练习: 1.简述变量命名规范 1.变量名由字母.下划线.数字组成 2.变量名不能以数字开头 3.变量不能使用python中的关键字 4.变量不能使用中文和拼音 5.区分大小写 6.变量名要具有描述性 ...

  9. 最长上升子序列(LIS) Medium1

    某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...

  10. 数塔 Medium

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...