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. centos7 升级php版本

    centos7 默认PHP5.4,版本太低,很多要求至少PHP5.5 1.查看已经安装的PHP组件 yum list installed| grep php php.x86_64 -.el7 @bas ...

  2. hdu 4511 (AC自动机)

    注意标记一个点后,fail树上的子节点都会被标记 跑spfa,dp也可以 #include<iostream> #include<cstdio> #include<str ...

  3. 阶段3 1.Mybatis_09.Mybatis的多表操作_6 分析mybatis多对多的步骤并搭建环境

    示例:用户和角色             一个用户可以有多个角色             一个角色可以赋予多个用户         步骤:             1.建立两张表:用户表,角色表    ...

  4. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用

    这里的userSex是实体类里面的属性名,而不是数据库内的字段名称 一个老王改成性别女,为了区分一下 增加sex字段的查询 where标签 用上where和刚才的执行效果是一样的 where标签使我们 ...

  5. lgb参数及调参

    1 参数含义 max_depth: 设置树的最大深度,默认为-1,即不限制最大深度,它用于限制过拟合 num_leave: 单颗树的叶子数目,默认为31 eval_metric: 评价指标,可以用lg ...

  6. codeforces 1186C Vus the Cossack and Strings

    题目链接:https://codeforc.es/contest/1186/problem/C 题目大意:xxxxx(自认为讲不清.for instance) 例如:a="01100010& ...

  7. 【Python】我的第一个完整的小说爬虫

    写在开头 纪念我的第一个爬虫程序,一共写了三个白天,其中有两个上午没有看,中途遇到了各种奇怪的问题,伴随着他们的解决,对于一些基本的操作也弄清楚了.果然,对于这些东西的最号的学习方式,就是在使用中学习 ...

  8. Windows.命令行(CMD)_执行命令&环境变量

    1.CMD命令中如果 命令有换行的话,就使用 ^来连接(这就类似于 Linux命令行中 \ 的作用) 2.环境变量 2.1.显示 所有环境变量的值,命令:set 2.2.显示 某个环境变量的值,命令 ...

  9. 五、Zabbix-自动注册

    一.Zabbix Serber 1.进入动作界面 配置—>动作—>事件源—>自动注册—>创建动作 2.配置自动注册动作 1.配置动作 2.配置操作 Next step 添加成功 ...

  10. c++ 十进制、十六进制和BCD的相互转换

    #include <stdio.h> #include <string.h> #include <iostream> using namespace std; // ...