4.Lists

Lists

Python中的列表表示有序的值。 可以使用方括号来定义,变量值之间用逗号隔开。 例如,这是几个素数的列表:

[1]

primes = [2, 3, 5, 7]

我们可以将其他类型的东西放在列表中:

[2]

planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

还可以包含列表:

[3]

hands = [['J', 'Q', 'K'],['2', '2', '2'],['6', 'A', 'K'], # (Comma after the last element is optional)
]
# (I could also have written this on one line, but it can get hard to read)
hands = [['J', 'Q', 'K'], ['2', '2', '2'], ['6', 'A', 'K']]

列表还可以包含不同的数据类型:

[4]

my_favourite_things = [32, 'raindrops on roses', help]
# (Yes, Python's help function is *definitely* one of my favourite things)

Indexing

我们可以通过索引访问各个列表元素。
哪个星球最接近太阳? Python的索引从零开始,因此第一个元素的索引为0。

[5]

planets[0]'Mercury'

下一个最近的星球是?

[6]

planets[1]'Venus'

哪个是离太阳最远的星球?

列表末尾的元素可以使用负数访问,从-1开始:

[7]

planets[-1]'Neptune'

[8]

planets[-2]'Uranus'

Slicing

前三个星球是哪些?我们他可以通过切片来回答:

[9]

planets[0:3]
['Mercury', 'Venus', 'Earth']

planets[0:3]是我们向Python访问列表从索引0到索引2(不包含3)星球的方式。

起始和结束索引值是可选的。 如果我省略了起始索引,则假设为0.所以我可以将上面的表达式重写为:

[10]

planets[:3]['Mercury', 'Venus', 'Earth']

如果你省略结束索引值,Python认为是访问整个列表的长度。

[11]

planets[3:]['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

上面表达式含义是:给我从索引3开始的所有星球。

我们也可以用负数索引来切片

[12]

# All the planets except the first and last
planets[1:-1]['Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus']

[13]

# The last 3 planets
planets[-3:]['Saturn', 'Uranus', 'Neptune']

Mutating lists

列表是可变的,意思是她们可以按位置修改。

修改列表的一种方法是赋值索引或切片表达式。
例如,假设我们要重命名Mars:

[14]

planets[3] = 'Malacandra'
planets
['Mercury','Venus','Earth','Malacandra','Jupiter','Saturn','Uranus','Neptune']

让我们通过缩短前3个行星的名称来弥补。

[15]

planets[:3] = ['Mur', 'Vee', 'Ur']
print(planets)
# (Okay, that was rather silly. Let's give them back their old names)
planets[:4] = ['Mercury', 'Venus', 'Earth', 'Mars',]['Mur', 'Vee', 'Ur', 'Malacandra', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

List functions

Python含有一些内置的处理列表的函数。

len()函数可求列表的长度

[16]

# How many planets are there?
len(planets)8

sorted()函数可以对列表进行排序:

[17]

# The planets sorted in alphabetical order
sorted(planets)['Earth', 'Jupiter', 'Mars', 'Mercury', 'Neptune', 'Saturn', 'Uranus', 'Venus']

sum()函数可以对列表进行求和

[18]

primes = [2, 3, 5, 7]
sum(primes)17

我们之前已经使用过min和max求出最小值和最大值,我们也可以传递单个列表参数。

[19]

max(primes)7

Interlude: objects

到目前为止,我一直还未介绍“对象”一词, 你甚至可能还记得我声称Python中的所有内容都是一个对象。 但这究竟意味着什么呢?
简而言之,对象带有一些东西。 我们可以使用Python的语法访问这些东西(点语法)。
例如,Python中的数字带有一个名为imag的关联变量,代表它们的虚部。 (你可能永远不需要使用它,除非你做了一些非常奇怪的数学运算。)

[20]

x = 12
# x is a real number, so its imaginary part is 0.
print(x.imag)
# Here's how to make a complex number, in case you've ever been curious:
c = 12 + 3j
print(c.imag)0
3.0

对象携带的东西也可以包括函数。 附加到对象的函数称为方法。 (附加到对象的非函数事物,如imag,称为属性)。
例如,数字有一个名为bit_length的方法。 我们再次使用点语法访问它:

[21]

x.bit_length<function int.bit_length>

正确调用我们可以添加参数:

[22]

x.bit_length()4

像我们可以传递函数到hel()函数中,我们也可以传递方法:

[23]

help(x.bit_length)Help on built-in function bit_length:bit_length(...) method of builtins.int instanceint.bit_length() -> intNumber of bits necessary to represent self in binary.>>> bin(37)'0b100101'>>> (37).bit_length()6

上面的例子非常模糊。 到目前为止,我们所看到的任何类型的对象(数字,函数,布尔值)都没有您可能会使用的属性或方法。
但事实证明,列表有几种方法可供您随时使用。

List methods

list.append可以修改列表,通过在末尾添加一个元素

[24]

# Pluto is a planet darn it!
planets.append('Pluto')

为什么上面的单元格没有输出? 让我们通过调用help(planets.append)来检查文档。

注:append是一个由列表类型的所有对象自带的方法,所以我们也可以调用help(list.append)。 但是,如果我们尝试调用help(append),Python会抱怨没有名为“append”的变量。 “append”名称仅存在于列表中 - 它不作为内置函数(如max或len)的独立名称存在。

[25]

help(planets.append)Help on built-in function append:append(...) method of builtins.list instanceL.append(object) -> None -- append object to end

- >None 告诉我们list.append不返回任何内容。 但是如果我们检查行星的值,我们可以看到方法调用修改了行星的值:

[26]

planets['Mercury','Venus','Earth','Mars','Jupiter','Saturn','Uranus','Neptune','Pluto']

list.pop移除并返回列表最后一个元素的值:

[27]

planets.pop()'Pluto'

[28]

planets['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

Searching lists

Earth在列表中的位置在哪里?我们可以使用list.index方法得到它的索引。

[29]

planets.index('Earth')2

它排在第三位(列表索引从0开始)。

Pluto在哪里呢?

[30]

planets.index('Pluto')---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-30-8e9d439d9276> in <module>()
----> 1 planets.index('Pluto')ValueError: 'Pluto' is not in list

哦,那是对的......
为了避免这样的令人不快的意外,我们可以使用in运算符来确定列表是否包含特定值:

[31]

# Is Earth a planet?
"Earth" in planetsTrue

[32]

# Is Calbefraques a planet?
"Calbefraques" in planetsFalse

我们还没有涉及一些更有趣的列表方法。 如果您想了解附加到特定对象的所有方法和属性,我们可以在对象本身上调用help()。 例如,help(planets)将告诉我们所有列表方法:

[33]

help(planets)

列表有很多方法,有着奇怪的名字,比如__eq__和__iadd__。 现在不要太担心这些。 (你可能永远不会直接调用这些方法。但是当我们使用像索引或比较运算符这样的语法时,它们会在幕后被调用。)最有趣的方法是在列表的底部(append,clear,copy等)。

Tuples

元组几乎与列表完全相同。 它们只有两种不同。
1:创建它们使用括号(可选)而不是方括号

[34]

t = (1, 2, 3)

[35]

t = 1, 2, 3 # equivalent to above
t(1, 2, 3)

2:元组不能修改

[36]

[0] = 100---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-155b9e8fb284> in <module>()
----> 1 t[0] = 100TypeError: 'tuple' object does not support item assignment

元组通常用于具有多个返回值的函数。
例如,float对象的as_integer_ratio()方法以元组的形式返回分子和分母:

[37]

x = 0.125
x.as_integer_ratio()(1, 8)

这些多个返回值可以单独分配,如下所示:

[38]

numerator, denominator = x.as_integer_ratio()
print(numerator / denominator)0.125

最后,我们对用于交换两个变量的经典Stupid Python Trick™有了一些了解!

[39]

a = 1
b = 0
a, b = b, a
print(a, b)0 1

跳转到练习笔记本,以得到一些关于列表和元祖的练习。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么用计算机拟合数据,数据拟合的几个应用实例-毕业论文.doc

本科毕业设计(论文)数据拟合的几个使用实例燕 山 大 学年 月本科毕业设计(论文)数据拟合的几个使用实例学 院&#xff1a;专 业&#xff1a;学生姓名&#xff1a;学 号&#xff1a;指导教师&#xff1a;答辩日期&#xff1a;燕山大学毕业设计任务书学院&#xff1a; 系级教学单…

1.UNIX网络编程卷1:源码配置

本节主要介绍UNIX网络编程卷1&#xff08;第三版&#xff09;在Ubuntu16.04的配置问题&#xff0c;并运行一个简单时间获取客户程序。 1.首先下载源文件&#xff0c;链接如下&#xff1a;UNIX Network Programming Source Code 2.将下载好的压缩文件unpv13e.tar.gz解压&#…

【牛客 - 696C】小w的禁忌与小G的长诗(dp 或 推公式容斥)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/696/C 来源&#xff1a;牛客网 自从上次小w被奶牛踹了之后&#xff0c;就一直对此耿耿于怀。 于是"cow"成为了小w的禁忌&#xff0c;而长得和"cow"很像的"owc"…凡是…

html 地球大气,地球大气层为什么永远不会消失?

地球的大气层是一个很神奇的存在&#xff0c;几十亿年来&#xff0c;它就如同一层厚厚的保护膜&#xff0c;将地球与太空完全阻隔起来&#xff0c;正因为如此&#xff0c;地球上的生命才能够繁衍生息&#xff0c;代代相传。相信很多人都会有这样的疑问&#xff0c;为什么地球上…

5.Loops and List Comprehensions

Loops 循环是一种重复执行某些代码的方法。 [1] planets [Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune] for planet in planets:print(planet, end ) # print all on same line Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune 注意for循环…

【牛客 - 696D】小K的雕塑(dp,鸽巢原理,01背包类问题)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/696/D 来源&#xff1a;牛客网 小K有n个雕塑&#xff0c;每个雕塑上有一个整数 若集合T中的每一个元素在n个雕塑上都能找得到&#xff0c;则称这个集合为一个优秀的集合 小K想知道所有大小<k优秀…

计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计

重点大学计算机专业系列教材汇编语言程序设计语音编辑锁定讨论上传视频本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;《重点大学计算机专业系列教材汇编语言程序设计》是2009年10月1日清华大学出版社出版…

6.Strings and Dictionaries

目录 Strings 1. String syntax 2、Strings are sequences 3、String methods Strings Python语言真正发挥作用的一个地方是字符串的操作。 本节将介绍Python的一些内置字符串方法和格式化操作。 这种字符串操作模式经常出现在数据科学工作中&#xff0c;并且在这种情况下…

【LightOJ - 1123】Trail Maintenance(在线维护最小生成树,删边思维)

题干&#xff1a; Tigers in the Sunderbans wish to travel freely among the N fields (numbered from 1 to N), even though they are separated by trees. The tigers wish to maintain trails between pairs of fields so that they can travel from any field to any ot…

7.Working with External Libraries

在本课中&#xff0c;我将讨论Python中的imports&#xff0c;提供一些使用不熟悉的库&#xff08;以及它们返回的对象&#xff09;的技巧&#xff0c;并深入研究Python的内容&#xff0c;以及谈谈运算符重载。 Imports 到目前为止&#xff0c;我们已经讨论了内置于该语言的类…

计算机原理期中考试,计算机组成原理期中考试试题

一、单选题(每小题2分&#xff0c;共34分)1&#xff0e;完整的计算机系统应包括__________。A&#xff0e;运算器、存储器、控制器 B&#xff0e; 主机和实用程序C&#xff0e;配套的硬件设备和软件系统 D&#xff0e; 外部设备和主机2&#xff0e;下列数中真值最小的数是_____…

【HDU - 1839】Delay Constrained Maximum Capacity Path(最短路 + 二分)

题干&#xff1a; 考虑一个包含 N 个顶点的无向图&#xff0c;编号从 1 到 N&#xff0c;并包含 M 条边。编号为 1 的顶点对应了一个矿藏&#xff0c;可从中提取珍稀的矿石。编号为 N 的顶点对应了一个矿石加工厂。每条边有相应的通行时间 (以时间单位计)&#xff0c;以及相应…

0.Overview

本文为Kaggle Learn的Python课程的中文翻译&#xff0c;原文链接为&#xff1a;https://www.kaggle.com/learn/python 欢迎来到Kaggle Learn的Python课程。本课程将介绍在开始使用Python进行数据科学之前需要的基本Python技能。这些课程针对那些具有一些编程经验的人&#xff…

量子计算机的体积有多大,量子计算机也能实现摩尔定律

原标题&#xff1a;量子计算机也能实现摩尔定律量子计算机拥有很强大的计算力&#xff0c;但是这对IBM来说&#xff0c;似乎还不够。据CNET消息&#xff0c;IBM制作了一个路线图&#xff0c;表达出了自己在量子计算领域的野心。IBM在图表的纵轴上列出了一个单位“量子体积(Quan…

1.How Models work

Introduction 我们首先概述机器学习模型如何工作以及如何使用它们。如果您之前已完成统计建模或机器学习&#xff0c;这可能会感觉很基础。别担心&#xff0c;我们很快就会建立强大的模型。 本课程将为您构建以下场景的模型&#xff1a; 你的堂兄已经花了数百万美元预测房地产…

【BZOJ - 1059】矩阵游戏(二分图匹配,建图,最小边覆盖)

题干&#xff1a; 小Q是一个非常聪明的孩子&#xff0c;除了国际象棋&#xff0c;他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N *N黑白方阵进行&#xff08;如同国际象棋一般&#xff0c;只是颜色是随意的&#xff09;。每次可以对该矩阵进行两种操作&#xff…

ji计算机一级题库,全国计算机等级考试一级题库0l0ji.doc

全国计算机等级考试一级题库0l0ji全国计算机等级考试一级题库(1)1&#xff0e;微机中1K字节表示的二进制位数是( )。D?   A、1000   B、8x1000   C、1024   D、8x1024??2&#xff0e;计算机硬件能直接识别和执行的只有( )。D?   A、高级语言   B、符号语言   …

2.Explore Your Data

Using Pandas to Get Familiar With Your Data 任何机器学习项目的第一步都是熟悉数据。 您将使用Pandas库。 Pandas是科学家用于挖掘和处理数据的主要工具。 大多数人在他们的代码中将pandas缩写为pd。 我们使用如下命令执行此操作。 [1] import pandas as pd Pandas库中最…

【POJ - 3026】Borg Maze(bfs预处理 + 最小生成树,建图)

题干&#xff1a; The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of the galaxy. The Borg collective is the term used to describe the group consciousness of the Borg civilization. Each Borg individual is linked to the c…

计算机统考测试,计算机统考专业测试题.doc

文档介绍&#xff1a;应用所有单选题1、下面是某单位主页地址的,其中符合格式的是。A:B:C:D:答案:C知识点:应用部分\和的使用\浏览器的使用\1网页的几个基本术语2、用浏览器浏览网页,在地址栏中输入网址时,通常可以省略的是。A:B:C:D:答案:A知识点:应用部分\和的使用\浏览器的使…