1、列表的创建

列表是多个、有序、可重复的元素集合,数据包装在“[]”里,列表中的元素可以是任何类型,甚至可以是一个列表。
创建列表有两种方法:

A 对于规模比较小的列表可以直接定义和赋值,列表可以嵌套,即列表里面的元素可以是列表,列表中的元素数据类型可以不一致。

    name = ["", 2020, True, ["雨花台区", ""]]
print(name)
# 结果:['123', 2020, True, ['雨花台区', '4']]

B 利用列表生成式快速生成列表range(start, end, step)

    list1 = range(1, 10000, 2)
print(list1)
# 结果:range(1, 10000, 2)
2、列表的增加:

有三种方法:

A append() 追加

在Python中append 用来向 list 的末尾追加单个元素,此元素如果是一个list,那么这个list将作为一个整体进行追

    name = ["", 2020, True, ["雨花台区", ""]]
name.append(False)
name.append(["春江新城", "饮溪坊"])
print(name)
# 结果:['123', 2020, True, ['雨花台区', '4'], False, ['春江新城', '饮溪坊']]

B insert(位置,插入的元素) 插入

在Python中 insert 用来将单个元素插入到 list 中。第1个参数是个数值,是插入点的索引,即从什么地方增加元素。

    name = ["", 2020, True]
name.insert(2, "南京市")
print(name)
# 结果:['123', 2020, '南京市', True]

C extend() 延长
在Python中 extend 用来连接 list,在列表的末尾一次性追加另一个序列中的多个值,用新列表扩展原来的列表。

    name = ["", 2020, True]
name.extend([3, 5, 7])
print(name)
# 结果:['123', 2020, True, 3, 5, 7]
3、列表的删除:

有三种方法:pop(),remove(),del 列表[下标]
A pop(索引值)
如果参数为空,则默认删除最后一个元素,并返回该元素的值;若有参数,则返回该索引位置对应的元素。

    name = ["", 2020, True]
print(name.pop())
# 结果:True
name = ["", 2020, True]
print(name.pop(1))
# 结果:2020

B remove(元素)
移除列表中的第一个匹配元素,如果元素在列表中,则删除第一个匹配元素;如果元素不在列表中,则会报错。

    name = ["", 2020, True, ["雨花台区", ""]]
name.remove(["雨花台区", ""])
print(name)
# 结果:['123', 2020, True]
C del 列表名[索引]
    name = ["", 2020, True, ["雨花台区", ""]]
del name[2]
print(name)
# 结果:['123', 2020, ['雨花台区', '4']]
4、列表的修改:

有二种方法:
A 重新赋值

    name = ["", 2020, True, ["雨花台区", ""]]
name = [888]
print(name)
# 结果:[888]

B 通过列表下标来修改列表的元素

    name = ["", 2020, True, ["雨花台区", ""]]
name[2] = False
print(name)
# 结果:['123', 2020, False, ['雨花台区', '4']]
5、列表的查找:

有三种方法:
A 通过索引来查找

    name = ["", 2020, True, ["雨花台区", ""]]
print(name[3])
# 结果:['雨花台区', '4']

B 用in 成员运算符来查找

    name = ["", 2020, True, ["雨花台区", ""]]
x = True
if x in name:
print("这个元素是存在的")
# 结果:这个元素是存在的

C 通过切片方式来查找

list的[]中有三个参数,用冒号分割,list=[参数1,参数2,步长]
参数1为index start,参数1为index end,这两个参数也可以是负数。参数为正,当前参数从0开始,从左向右开始数;参数为负,当前参数从-1开始,从右向左开始数。
切片不仅可以切取连续的序列,也可以每隔几个元素切取一个元素,这个间隔的数字就是步长。在使用步长切片时步长的长度值写到最后即可。

通过切片查询

a = ["you", "are", "a", "good", "man", "."]
print(a[3])
# 表示截取下标为3的元素,结果:good 类型为字符串 print(a[1:5])
# 表示截取从下标1到下标3,但不包括下标3的元素,结果:['are', 'a', 'good', 'man'] print(a[1:-4])
# 第1和第2个参数都可以是负数,只需要第二个索引所代表的元素位于第一个索引代表的元素的后面即可, 结果为['are'] print(a[1])
#结果为are print(a[-2])
#结果为man print(a[1:-2])
#结果为['are', 'a', 'good'] 顾前不顾后的原则。
# 1 从左向右开始数0 1,结果包含1;-2 从右向左开始数 -1 -2,结果不包含-2。

步长:

如果开始的时候下标是1 设置的步长是2 ,那么就是取下标是1 的数据, 还会取 1+步长(2) =3 那么会取下标是3 的数据。再往后就是结果3+步长(2)=5,系统会取下标是5 的数据, 在往后的话就是结果5+步长(2) =7 系统就会取下标是7的数据。
步长为正数,从左向右切,步长为负数,从右向左切。通过在开始序号和步长前加负号来改变是从前面切还是从后面切,开始序号应与步长保持符号一致性。切片的特性:一,其默认第一个字符的序号为0。二,顾头不顾尾,开始序号的字符会保留,但结束序号的字符不会保留,只会保留到结束序号的前一个字符。

微信公众号刷阅读流量  https://www.douban.com/group/topic/162687100/  https://www.tujiebar.com  途杰吧

a = ["you", "are", "a", "good", "man", "."]
# 步长为正,打印的结果是从左到右,步长为负,打印的结果是从右到左
print(a[::1])
# 结果:['you', 'are', 'a', 'good', 'man', '.'] print(a[::-1])
# 结果:['.', 'man', 'good', 'a', 'are', 'you'] print(a[::2])
# 步长为2,就是第1个打印数据是起始下标,第2个数据是(起始下标+2),
# 结果:['you', 'a', 'man'] print(a[::-2])
# 结果:['.', 'good', 'are'] print(a[4:1:-1])
# 步长为负,第1个参数数值要比第2个参数数值要大,否则结果为空。步长为负,前面的两个参数,是从右向左开始数
# 结果:['man', 'good', 'a'] print(a[-1:-5:-1])
# 结果:['.', 'man', 'good', 'a'] print(a[-1:-5:-2])
# 结果:['.', 'good'] print(a[-5:-1:2])
# 这里步长是2,第1个参数是-5,即“are”,第2个参数是-1,即“.”, 由于步长是正数,根据左开右闭原则,第2个参数“.”,不包括在内,
# 截取的范围是: "are", "a", "good", "man",步长为2,# 第一个打印结果为"are",第二个打印结果是下标(1+2),即"good"。
# 结果:['are', 'good']
6、列表的其他用法:

A count(元素)

a = ["you", "are", "a", "good", "man", "."]
print(a.count("a"))
结果:1 表示"a"这个元素在列表a中出现了1次

B index(元素)

print(a.index("a"))
# 结果:2 表示"a"这个元素下标为2

C in 判断列表中是否存在某元素

b = "are"
print(b in a)
结果:True

D sort()

按照指定规则对所有元素进行排序,默认规则是直接比较规则大小。不能直接打印排序,必须要重新赋值

c = [1,6,2,7,9,434,76,43]
c.sort()
print(c)
# 结果:[1, 2, 6, 7, 9, 43, 76, 434]
c.sort(reverse=True)
print(c)
# 结果:[434, 76, 43, 9, 7, 6, 2, 1]

E sorted()
对列表进行排序并返回新列表,不对原列表做任何修改。

c = [1,6,2,7,9,434,76,43,32]
print(sorted(c))
# 结果:[1, 2, 6, 7, 9, 32, 43, 76, 434]
7、常用的内置函数

len():返回列表中的元素个数,同样适用于元组、字典、集合、字符串等。

c = [1,6,2,7,9,434,76,43]
print(len(c))
# 结果:9

max() min()
返回列表中的最大或最小元素,同样适用于元组、字典、集合、range对象等。

sum()
对列表的元素进行求和运算。

8、列表的遍历:
有3种方法:

A enumerate()
枚举列表元素,返回枚举对象,其中每个元素为包含下标和值的元组。该函数对元组、字符串同样有效。

a = ["you", "are", "a", "good", "man", "."]
for x in enumerate(a):
print(x)
#结果:
(0, 'you')
(1, 'are')
(2, 'a')
(3, 'good')
(4, 'man')
(5, '.')

B for in 方法

a = ["you", "are", "a", "good", "man", "."]
for x in a:
print(x) # 结果:
you
are
a
good
man
.

C for … in range(len(某列表))

a = ["you", "are", "a", "good", "man", "."]
for x in range(len(a)):
print(x, a[x])

9、列表推导式:
[表达式 for 变量 in 序列或迭代对象]

列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。
它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]

等同于下面:

for x in range(1,5):
if x > 2:
for y in range(1,4):
if y < 3:
print(x*y)

【干货】Python基础——列表的更多相关文章

  1. python基础——列表生成式

    python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...

  2. python基础——列表推导式

    python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...

  3. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  4. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  5. Python基础 列表介绍、使用

    第3章 学习目标: 列表是什么以及如何使用列表元素.列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素.列表是新手可直接使用的最强大的Python功能之一,它融合了众 ...

  6. python基础——列表

    Python列表脚本操作符 列表对 + 和 * 的操作符与字符串相似.+ 号用于组合列表,* 号用于重复列表. 如下所示: Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [ ...

  7. Python基础-列表推导式

    python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...

  8. Python基础——列表、元组操作

    列表.元组操作 列表: 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ...

  9. Python基础-列表_元组_字典_集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

随机推荐

  1. Centos 7中安装svn服务器,史上最详细

    最近上头安排了帮客户安装svn服务器,用了两种方式安装,yum命令安装,快速简洁容易上手,但是源码安装就比较繁琐,两种方式都试了一下,yum命令基本一个多小时就安装完了,但是源码安装弄了我两天的时间, ...

  2. ios---cocoapods 安装与使用 (AFNetworking为例)

    cocoapods 安装与使用 一.CocoaPods是什么? CocoaPods是一个用Ruby写的.负责管理iOS项目中第三方开源库的工具,CocoaPods能让我们集中的.统一管理第三方开源库, ...

  3. 线段树+Lazy标记(我的模版)

    #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ...

  4. IO博客专栏

    1. IO概览 2. 字符流与字节流的区别

  5. (.text+0x18): undefined reference to `main'

    在将VS中的程序移植到ubuntu中出现的一个问题,主要原因是在vs中默认的主函数写成int _tmain(), 而在gcc编译时要找的是int main().改过来就可以了.

  6. Redis | 使用redis存储对象反序列化异常SerializationFailedException

    案例 使用Redis进行对象存储,在处理业务逻辑的时候,丛Redis获取对象发现反序列化失败,抛出如下异常: Caused by: org.springframework.data.redis.ser ...

  7. cd命令和roscd命令的区别,并解决环境变量问题

    cd命令和roscd命令都是切换到指定目录的命令.不同的是,cd是Linux系统的命令,在使用时必须指定目标目录的完整路径:而roscd是ros系统中的命令,它可以直接切换到指定目录(ros系统中的软 ...

  8. WeChall_Prime Factory (Training, Math)Training: WWW-Robots (HTTP, Training)

    In this little training challenge, you are going to learn about the Robots_exclusion_standard.The ro ...

  9. 刚安装了ftp之后无法使用root访问,服务器发回了不可路由的地址。使用服务器地址代替。

    真的艰辛,用了整整一个下午加晚上,才把服务器搭建好,中间真的好多坑... 错误1: vsftpd正确配置: vsftpd.conf: pam_service_name=vsftpduserlist_e ...

  10. centos系统组件优化

    CentOS Linux在公司服务器上广泛被使用,本文总结了一些常见的加固方法. 基本原则: 最小的权限+最小的服务=最大的安全 操作之前先备份: 为避免配置错误无法登录主机,请始终保持有一个终端已用 ...