Python学习:操作列表

系统 1517 0

创建数值列表

列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。
明白如何有效地使用这些工具后,即便列表包含数百万个元素,你编写的代码也能运行得很好。

  1. 使用函数 range()
    数range()让你能够轻松地生成一系列的数字。
            
              
                for
              
               value 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              value
              
                )
              
            
          
            
              输出:
1
2
3
4

            
          

在这个示例中, range()只是打印数字1~4,这是你在编程语言中经常看到的差一行为的结果。
函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出
不包含第二个值(这里为5)。

  1. 使用 range()创建数字列表
    要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将为一个数字列表。
            
              numbers 
              
                =
              
              
                list
              
              
                (
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                6
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              numbers
              
                )
              
            
          
            
              输出:[1, 2, 3, 4, 5]

            
          

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

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

在这个示例中,函数range()从2开始数,然后不断地加2,直到达到或超过终值( 11),因此
输出如下:[2, 4, 6, 8, 10]

  1. 对数字列表执行简单的统计计算
    有几个专门用于处理数字列表的Python函数。例如,你可以轻松地找出数字列表的最大值、
    最小值和总和:
            
              digits 
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ,
              
              
                6
              
              
                ,
              
              
                7
              
              
                ,
              
              
                8
              
              
                ,
              
              
                9
              
              
                ,
              
              
                0
              
              
                ]
              
              
                min
              
              
                (
              
              digits
              
                )
              
              
                #0
              
              
                max
              
              
                (
              
              digits
              
                )
              
              
                #9
              
              
                >>
              
              
                >
              
              
                sum
              
              
                (
              
              digits
              
                )
              
              
                #45
              
            
          
  1. 列表解析
    前面介绍的生成列表squares的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。 列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
            
              squares 
              
                =
              
              
                [
              
              value
              
                **
              
              
                2
              
              
                for
              
               value 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                11
              
              
                )
              
              
                ]
              
              
                print
              
              
                (
              
              squares
              
                )
              
            
          

要使用这种语法,首先指定一个描述性的列表名,如squares;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value 2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value 2。请注意,这里的for语句末尾没有冒号。
输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


使用列表的一部分

处理列表的部分元素——Python称之为切片.

  1. 切片
    要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样, Python
    在到达你指定的 第二个索引前面的元素后停止 。要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0、 1和2的元素。
            
              players 
              
                =
              
              
                [
              
              
                'charles'
              
              
                ,
              
              
                'martina'
              
              
                ,
              
              
                'michael'
              
              
                ,
              
              
                'florence'
              
              
                ,
              
              
                'eli'
              
              
                ]
              
              
                print
              
              
                (
              
              players
              
                [
              
              
                0
              
              
                :
              
              
                3
              
              
                ]
              
              
                )
              
            
          

输出也是一个列表,其中包含前
三名队员:[‘charles’, ‘martina’, ‘michael’]

你可以生成列表的任何子集,例如,如果你要提取列表的第2~4个元素,可将起始索引指定
为1,并将终止索引指定为4:

            
              players 
              
                =
              
              
                [
              
              
                'charles'
              
              
                ,
              
              
                'martina'
              
              
                ,
              
              
                'michael'
              
              
                ,
              
              
                'florence'
              
              
                ,
              
              
                'eli'
              
              
                ]
              
              
                print
              
              
                (
              
              players
              
                [
              
              
                1
              
              
                :
              
              
                4
              
              
                ]
              
              
                )
              
            
          

输出:[‘martina’, ‘michael’, ‘florence’]
如果你没有指定第一个索引, Python将自动从列表开头开始:

            
              players 
              
                =
              
              
                [
              
              
                'charles'
              
              
                ,
              
              
                'martina'
              
              
                ,
              
              
                'michael'
              
              
                ,
              
              
                'florence'
              
              
                ,
              
              
                'eli'
              
              
                ]
              
              
                print
              
              
                (
              
              players
              
                [
              
              
                :
              
              
                4
              
              
                ]
              
              
                )
              
            
          

输出:[‘charles’, ‘martina’, ‘michael’, ‘florence’]

负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。例如,如果你
要输出名单上的最后三名队员,可使用切片players[-3:]:

            
              players 
              
                =
              
              
                [
              
              
                'charles'
              
              
                ,
              
              
                'martina'
              
              
                ,
              
              
                'michael'
              
              
                ,
              
              
                'florence'
              
              
                ,
              
              
                'eli'
              
              
                ]
              
              
                print
              
              
                (
              
              players
              
                [
              
              
                -
              
              
                3
              
              
                :
              
              
                ]
              
              
                )
              
            
          

打印最后三名队员的名字

  1. 遍历切片
    如果要遍历列表的部分元素,可在for循环中使用切片。在下面的示例中,我们遍历前三名
    队员,并打印他们的名字:
            
              players 
              
                =
              
              
                [
              
              
                'charles'
              
              
                ,
              
              
                'martina'
              
              
                ,
              
              
                'michael'
              
              
                ,
              
              
                'florence'
              
              
                ,
              
              
                'eli'
              
              
                ]
              
              
                for
              
               player 
              
                in
              
               players
              
                [
              
              
                :
              
              
                3
              
              
                ]
              
              
                :
              
              
                print
              
              
                (
              
              player
              
                )
              
            
          
            
              输出:
charles
martina
michael

            
          
  1. 复制列表
    要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
            
              my_foods 
              
                =
              
              
                [
              
              
                'pizza'
              
              
                ,
              
              
                'falafel'
              
              
                ,
              
              
                'carrot cake'
              
              
                ]
              
              
friend_foods 
              
                =
              
               my_foods
              
                [
              
              
                :
              
              
                ]
              
              
                print
              
              
                (
              
              
                "My favorite foods are:"
              
              
                )
              
              
                print
              
              
                (
              
              my_foods
              
                )
              
              
                print
              
              
                (
              
              
                "\nMy friend's favorite foods are:"
              
              
                )
              
              
                print
              
              
                (
              
              friend_foods
              
                )
              
            
          
            
              输出:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论