python3 入门 (二) 列表的使用

列表用于组织其它数值,即写在方括号之间、用逗号分隔开的数值列表。列表内的项目不必全是相同的类型。

列表的定义

1 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]

添加元素

  • 将另一个列表直接赋值给该列表
  • 使用"[头下标:尾下标]"j将另一个列表的指定元素值拷贝至该列表
  • 使用"+"连接符,将元素添加至列表末尾
  • 使用" * "乘号得到多个相同元素
  • 使用append方法,将元素添加至列表末尾
  • 使用extend方法,将元素添加至列表末尾
  • 使用insert方法,将元素插入至指定位置
 1 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
 2 student *= 3
 3 print(student)
 4
 5
 6 # student中变量为name值的复制
 7 name = [‘Jerry‘, ‘Lucy‘]
 8 student = name[:]
 9 print(student)
10 name.clear()
11 print(student)
12
13
14 # *得到的每一相同项指向同一内存地址
15 name = [‘Jerry‘]*3
16 print(name)
17 name.clear()
18 print(name)
19
20 # name2与name1指向同一内存地址
21 name1 = [‘Jerry‘]
22 name2 = name1
23 print(name2)
24 name1.clear()
25 print(name2)
26
27 # student中变量为name值的复制,与name不指向同一内存地址
28 name = [‘Jerry‘]
29 student = name*3
30 print(student)
31 name.clear()
32 print(student)
33
34 # append添加后,student中的[‘Jerry‘]与name变量指向同一内存地址
35 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
36 name = [‘Jerry‘]
37 student.extend(name)
38 print(student)
39 name.clear()
40 print(student)
41
42 # 同上,insert插入后,student中的[‘Jerry‘]与name变量指向同一内存地址
43 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
44 name = [‘Jerry‘]
45 student.insert(1, name)
46 print(student)
47 name.clear()
48 print(student)
49
50 # extend添加后,student中的[‘Jerry‘]为name值的复制
51 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
52 name = [‘Jerry‘]
53 student.extend(name)
54 print(student)
55 name.clear()
56 print(student)

删除元素

  • 使用remove方法删除指定值的元素
  • 使用pop方法弹出栈顶元素,返回弹出元素
  • 使用del关键字删除指定位置元素
 1 # 删除指定值的元素
 2 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
 3 student.remove(‘Tom‘)
 4 print(student)
 5
 6 # 弹出栈顶元素
 7 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
 8 s = student.pop()
 9 print(s)
10 print(student)
11
12 # 删除指定位置元素
13 student = [‘Tom‘, ‘Jack‘, ‘Avril‘]
14 del student[1]
15 print(student)

列表推导式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

将列表中每个数值乘三,获得一个新的列表:

>>> num = [1, 2, 3]
>>> [3*n for n in num]
[3, 6, 9]

可以用 if 子句作为过滤器:

>>> num = [1, 2, 3]
>>> [3*n for n in num if n > 2]
[9]
>>> [3*n for n in numif n < 3]
[3,6]

其他用法:

>>> vec1 = [2, 4, 6]
>>> vec2 = [4, 3, -9]
>>> [x*y for x in vec1 for y in vec2]
[8, 6, -18, 16, 12, -36, 24, 18, -54]

>>> [vec1[i]*vec2[i] for i in range(len(vec1))]
[8, 12, -54]

用列表推导式实现矩阵转置:

 1 # 矩阵转置
 2 matrix = [
 3     [1, 2, 3],
 4     [4, 5, 6],
 5     [7, 8, 9],
 6     [10, 11, 12]
 7 ]
 8
 9 # 方法一
10 newMatrix = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
11 print(newMatrix)
12
13 # 方法二
14 newMatrix = []
15 for i in range(len(matrix[0])):
16     newMatrix.append([row[i] for row in matrix])
17 print(newMatrix)
18
19 # 方法三
20 newMatrix = []
21 for i in range(len(matrix[0])):
22     newRow = []
23     for oldRow in matrix:
24         newRow.append(oldRow[i])
25     newMatrix.append(newRow)
26 print(newMatrix)
时间: 2024-10-07 17:14:48

python3 入门 (二) 列表的使用的相关文章

全面系统Python3入门+进阶课程 ??

全面系统Python3入门+进阶课程 Python语言本身就是一门简单的语言,入门非常容易. 机器学习中用到的Python(语法)相对就更简单了. 本文从机器学习的视角来看需要具备的Python基础. 我们的目标是-- 没有蛀牙... 针对一个程序员(如Java程序员),在1个小时内学会足够机器学习中使用到的Python语法. 1. Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Guido van

kafka入门二:Kafka的设计思想、理念

本节主要从整体角度介绍Kafka的设计思想,其中的每个理念都可以深入研究,以后我可能会发专题文章做深入介绍,在这里只做较概括的描述以便大家更好的理解Kafka的独特之处.本节主要涉及到如下主要内容: Kafka设计基本思想 Kafka中的数据压缩 Kafka消息转运过程中的可靠性 Kafka集群镜像复制 Kafka 备份机制 一.kafka由来 由于对JMS日常管理的过度开支和传统JMS可扩展性方面的局限,LinkedIn(www.linkedin.com)开发了Kafka以满足他们对实时数据流

DevExpress XtraReports 入门二 创建 data-aware(数据感知) 报表

原文:DevExpress XtraReports 入门二 创建 data-aware(数据感知) 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这样浪费时间才写的这篇文章,高手不想的看请路过 本文内容来DevExpress XtraReports帮助文档,如看过类似的请略过. 废话少说 开始正事 一.创建应用程序并添加报表 启动 MS Visual Studio (2005.2008.或 2010). 在 Visua

Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.7,虽然现在随着版本的迁移至Python3,但是这个并不会对我们造成什么困扰,毕竟只是一个适应阶段 我们的学习资料:廖雪峰官方网站Python2.7教程 一.IDE选择PyCharm 我们虽然在前面一章已经配置过,但是我们还是有很多的IDE可以开发Py,比如su

python3入门之几个函数变化

获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍print,import和input,t函数,包括他们在python2.7和python3 的区别以及用法.下面附有之前的文章: python入门之字典 python入门之字符串 python入门之列表和元组 python入门之软件安装 python3的print函数的变化 python3之前的print是简单的语句比如要打印hello world >>> print 'hello world' hello world &

python3入门之赋值语句介绍

获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍赋值语句,以及几种特殊的赋值.下面附有之前的文章: python3入门之print,import,input介绍 python入门之字典 python入门之字符串 python入门之列表和元组 python入门之软件安装 简要介绍下赋值语句 在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域 Python 没有「变量」,我们平时所说的变量其实只是「标签」,是引用

python3入门之print,import,input介绍

获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍print,import和input,t函数,包括他们在python2.7和python3 的区别以及用法.下面附有之前的文章: ? python入门之字典 python入门之字符串 python入门之列表和元组 python入门之软件安装 python3的print函数的变化 python3之前的print是简单的语句比如要打印hello world >>> print 'hello world' hello world

[WebGL入门]二十,绘制立体模型(圆环体)

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 立体的模型 这次稍微喘口气,开始绘制立体模型.这里说的[喘口气]是指本次的文章中没有出现任何新的技术知识点.只是利用到现在为止所介绍过的内容,来绘制一个立体的圆环体.到现在为止,只绘制了三角形和四边形,当然,在三维空间中绘制简单的多边形也没什么不对,但是缺点儿说服力.

Netty入门二:开发第一个Netty应用程序

    既然是入门,那我们就在这里写一个简单的Demo,客户端发送一个字符串到服务器端,服务器端接收字符串后再发送回客户端. 2.1.配置开发环境 1.安装JDK 2.去官网下载jar包 (或者通过pom构建) 2.2.认识下Netty的Client和Server 一个Netty应用模型,如下图所示,但需要明白一点的是,我们写的Server会自动处理多客户端请求,理论上讲,处理并发的能力决定于我们的系统配置及JDK的极限. Client连接到Server端 建立链接发送/接收数据 Server端