Python如何操作列表及元组

目录

 

前言

遍历列表

for循环

数字列表

使用函数range()

使用range()创建数字列表

对数字列表执行简单的统计计算

列表解析

使用列表中部分元素

切片

遍历切片

复制列表

元组

定义元组

遍历元组中的所有值

修改元组变量

最后


前言

在上一篇文章我们学习了如何创建列表以及如何操作列表元素,这篇文章我们开始学习如何使用for循环遍历整个列表以及讲一些关于元组的知识。

 

遍历列表

在python编程中,无论列表多长,遍历整个列表,只需要几行代码。那如何遍历列表呢?我们可以使用Python中的for循环。for循环能对列表的每个元素都采取一个或系列相同的措施,从而高效地处理任何长度的列表。

 

for循环

如何使用for循环呢,下面我们做一个例子:

languages=["Python","Java","C++","C#","C"]
for language in languages:
    print(language)
print("循环结束了")

输出结果如下:

Python
Java
C++
C#
C
循环结束了

这个例子我们首先创建了一个语言列表languages,然后利用for循环把语言列表中的每一个元素都打印出来。

for language in languages:
    print(language)

这两行代码让Python获取列表languages中的第一个元素"Python"存储在language中并打印出来,然后进行循环打印列表中的下一个元素,直到把列表中的所有元素打印出来。

注意:

  • 在for循环后面,没有缩进的代码都只执行一次,而且不会重复执行;
  • 在for循环语句最后一定要加冒号(:),要不然会报错;
  • 在for循环中,想包含多少行代码都可以。

循环结束后再怎么做呢,我们可以提供总结性输出或者接着执行程序必须完成的其他操作。

数字列表

python提供了很多工具,可以帮助我们高效地处理数字列表,当我们明白如何有效地使用这些工具后,即便列表包含数百万个元素,我们编写的代码也能运行得很好。那该如何使用呢,下面我们开始讲解。

使用函数range()

python函数range()让我们能够轻松地生成一系列的数字,例如:

for value in range(1,5):
    print(value)

输出结果为:

1
2
3
4

可能有人问,上面代码是不是应该打印1~5呢,在这个示例实际上它不会打印5,因为函数range()让Python从你指定的第一个值开始数,在你指定的第二个值后停止,因此输出不包含第二个值(这里为5)。使用range()时,如果输出不符合预期,请尝试将指定的值加1或者减1。

使用range()创建数字列表

要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果将range()作为list()参数,输出将为一个数字列表。例如:

numbers=list(range(1,6))
print(numbers)

输出结果为:

[1, 2, 3, 4, 5]

使用函数range()时,还可指定步长。例如下面的代码打印1~10内的偶数:

numbers=list(range(2,11,2))
print(numbers)

前面的2代表从2开始数,后面的2代表每循环一次加2,直到达到或超过值(11),输出结果为:

[2, 4, 6, 8, 10]

对数字列表执行简单的统计计算

有几个专门用于处理数字列表的Python函数。

  • min()函数:找出数字列表的最小值;
  • max()函数:找出数字列表的最大值;
  • sum()函数:计算数字列表值的总和。

列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。我们看看下面两段代码:

squares=[]
for value in range(1,11):
    square=value**2
    square.append(square)
print(squares)
squares=[value**2 for value in range(1,11)]
print(squares)

上面两段代码的输出结果都是:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

它们之间的局别是第二段代码使用了列表解析,从而使代码更简短。

要是使用这种语法,首先指定一个描述性的列表名,如squares;然后指定一个左方括号,并定义一个表达式,如value**2,用于生成我们要存储到列表中的值。接下来编写一个for循环,用于给表达式提供值,再加上右方括号。注意这里的for循环末尾没有冒号。

使用列表中部分元素

我们处理列表的部分元素在Python中称为切片。

切片

要创建切片

  • 可指定要使用的第一个元素的索引和最后一个元素的索引加1;
  • 当我们没有指定第一个元素索引时,Python将自动从列表开头开始;
  • 当我们没有指定最后一个元素索引时,Python将让切片终止于列表末尾。

例如:

languages=["Python","Java","C++","C#","C"]
print(languages[0:3])
print(languages[:2])
print(languages[2:])
print(languages[-2:])

输出结果为:

['Python', 'Java', 'C++']
['Python', 'Java']
['C++', 'C#', 'C']
['C#', 'C']

遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片,例如:

languages=["Python","Java","C++","C#","C"]
for language in languages[:3]:
    print(language.title())

输出结果为:

Python
Java
C++

在这个示例中,我们没有遍历整个列表元素。只遍历前三个列表元素,并打印出来。

复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([ : ])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片。即复制整个列表。例如:

languages1=["Python","Java","C++","C#","C"]
languages2=languages1[:]
print("My first languages are:")
print(languages1)
print("\nMy second languages are:")
print(languages2)

输出结果为:

My first languages are:
['Python', 'Java', 'C++', 'C#', 'C']

My second languages are:
['Python', 'Java', 'C++', 'C#', 'C']

从结果来看,我们成功复制了。

注意:假如我们不使用切片,只是简单地将languages1赋给languages2,就不能得到两个列表,例如:

languages1=["Python","Java","C++","C#","C"]
languages2=languages1
languages1.append("Visual Basic")  #添加Visual Basic在languages1中
languages2.append("javascript")    #添加javaScript在languages2中
print("My first languages are:")
print(languages1)
print("\nMy second languages are:")
print(languages2)

这里将languages1赋给languages2,而不是将languages1的副本存储到languages2中,这种语法实际上是让Python将新变量languages2关联到包含在languages1中的列表,,因此这两个变量都指向同一个列表。所以当我们将Visual Basic添加到languages1中时,它也将出现在languages2中。

输出结果表明,两个列表是相同的,这并非我们想要的结果:

My first languages are:
['Python', 'Java', 'C++', 'C#', 'C', 'Visual Basic', 'javascript']

My second languages are:
['Python', 'Java', 'C++', 'C#', 'C', 'Visual Basic', 'javascript']

元组

列表非常适合用于存储在程序运行期间可能变化的数据集,列表是可以修改的,但有一种特殊的列表——元组,是不可以修改的。

定义元组

元组看起来像列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。例如:

languages=("Python","Java","C++","C#","C")
print(languages[0])
print(languages[4])

输出结果为:

Python
C

遍历元组中的所有值

像列表一样,也可以使用for循环遍历元组的所有值:

languages=("Python","Java","C++","C#","C")
for language in languages:
    print(language)

输出结果为:

Python
Java
C++
C#
C

 

修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

dimensions=(200,50)
print("Original dimensions:")
for dimension in dimensions:
    print(dimension)

dimensions=(400,100)
print("\nModified dimensions:")
for dimension in dimensions:
    print(dimension)

我们首先定义了一个元组,并将其存储的尺寸打印了出来。接下来,将一个先元组存储到变量dimensions中,然后打印新的尺寸。这次,Python不会报告任何错误,因为给元组变量赋值是合法的,输出结果为:

Original dimensions:
200
50

Modified dimensions:
400
100

相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

最后

好了,关于如何使用for循环遍历整个列表以及一些关于元组的知识讲到这里,有讲得不好的,请私信或者评论区告诉我,谢谢啦,下一篇内容——if语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白巧克力LIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值