Python笔记(3)——列表二:操作列表(Python编程:从入门到实践)

一、遍历列表

  1.  遍历整个列表:使用 for 循环

 1  colors=[ '  red  ' , '  yellow  ' , '  blue  ' , '  green  ' ]  #  定义列表 
 2   for  color  in  colors:  #  使用循环:从列表中提取一个元素并将其存在变量i中 
 3       print (color)  #  打印变量i的值
以上代码运行的结果是:

  执行第1行代码定义列表 colors ,执行第2行代码; for 语句末尾的冒号告诉 Python ,下一行是循环的第一行。 进入 第一次循环
第2行代码获取列表 colors 中的第一个值( 'red' ),并将其存储到变量 color   中;接下来执行第3行代码,让 Py t hon 打印 color   的值 'red' 。完成第一次循环。
  由于列表还包含其他值, Python 返回到循环的第一行,即第2行代码,开始 第二次循环
Python 获取列表中的第二个颜色 'yellow' ,并将其存储到变量 color   中,再执行第3行代码, Python 再次打印变量 color   的当前的值 'yellow' ,完成第二次循环。
  依此类推,直至对列表中的最后一个值 'green' 进行处理。至此,列表没有其他的值了, Python 执行程序的下一行代码。
  在这个示例中, for 循环后面没有其他的代码,程序就此结束。

  2. for 循环中的缩进与结束后操作

 1  colors=[ '  red  ' , '  yellow  ' , '  blue  ' , '  green  '  ]  2   for  color  in  colors:  3       print (color.title()+ "  是我最喜欢的颜色。  "  )  4       print ( "    " +color.upper()+ "  是他最讨厌的颜色。\n  "  )  5   print ( "  这条语句不在循环内,只在循环结束后执行一次  " )
以上代码运行的结果是:

  在代码 for color in colors 后面, 每个缩进的代码行都是循环的一部分 ,且将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。 由于前两条 print 语句都缩进了,因此它们都将针对列表中的每个元素执行一次。第二条 print 语句中的换行符"\n",在每次迭代结束后都插入一个空行从。 第3条 print 语句不在循环内,只在循环结束后执行一次

二、创建数值列表

   1. 函数 range() 介绍

  可用 Python 函数 range() 让成一系列的数字。函数 range()Python 指定的第一个值开始数,并在到达指定的第二个值后停止,输出 不包含第二个值

 1   for  value_1  in  range(2,7):  #  使用循环遍历range(2,7)的整数 
 2       print  (value_1)
以上代码运行的结果是:

   2.创建数值列表

  要创建数字列表,可使用函数 list()range() 的结果直接转换为列表。 如果将 range() 作为 list() 的参数,输出将为一个数字列表 使用函数 range() 时,还可指定步长。 【range(a,b,c)】a为开始元素,b为结束元素(不包含b),c为步长。

   列表解析:将 for 循环和创建新元素的代码合并成一行,并自动附加新元素。 用法:首先指定一个描述性的 列表名 ,如 Sa; 然后指定一个 左方括号 ,并定义一个 表达式 ,用于生成你要存储到列表中的值。在下面 20-24行 代码中,表达式为 a**2 ,它计算平方值。接下来,编写一个 for 循环 ,用于给表达式提供值,再加上 右方括号 。在下面示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value**2。请注意,这里的for语句末尾没有冒号。

 1   print ( '  创建数字列表  '  )  2  num=list(range(10,15))  #  创建num列表,将range()的结果直接转换为列表。此处range()作为列表的参数,运行后输出一个数字列表 
 3   print  (num)  4  
 5   print ( '  \n指定range()的步长  '  )  6  num1=list(range(10,15,2))  #  从10开始,到15(不包括15),步长为2 
 7   print  (num1)  8  
 9   print ( "  \n练习:创建一个包含前十个整数的平方列表  "  )  10  As=[]  #  新建空列表 
 11   for  a  in  range(1,11):  #  使用range()函数创建数字1~10,并将其保存在变量a中 
 12      A=a**2  #  计算当前循环值得平方 
 13      As.append(A)  #  使用append()方法将当前平方值添加到列表中 
 14   print (As)  #  循环结束后,打印列表。 
 15  
 16   print ( "  \n练习的简介代码  "  )  17  S= []  18   for  i  in  range(1,11 ):  19      S.append(i**2 )  20   print  (S)  21      
 22   print ( "  \n列表解析例子:将练习代码合成一行  "  )  23  Sa=[a**2  for  a  in  range(1,11 )]  24   print (Sa)
以上代码运行的结果是:

  3.数字列表简单统计计算  

 min()函数:返回数字列表最小值

max()函数:返回数字列表最大值

sum()函数:对数字列表元素求和

 1  D=[10,20,30,40,50,60,70,80,90 ,0]  2   print  (min(D))  3   print  (max(D))  4   print (sum(D))
以上代码运行的结果是:

三、使用列表的一部分

  1. 切片

  创建切片,需使用起始元素和终止元素的索引。列表的 切片返回的是列表 ,可理解为获取原列表的子集。 【list[a:b:c]】,a、b、c 分别为起始于索引、终止索引及步长 (不包括终止位置元素b)  

 注意:

  ①列表切片使用符号是 冒号“:” range() 函数使用的是逗号“,”。列表用逗号“,”分隔。

  ②未指定起始索引,默认从原列表第一个位置,即索引0开始提取元素。

  ③未指定终止索引,默认提取到列最后一个元素。

  ④列表中的步长理解:假设原列表为 Q=[-20,-10,10,20,30,40,50,60,70,80,90,100,0] 切片为 Q[3:10:3] ,则切片从 3 号索引的 20 开始,到 9 号索引位的 80 ,间隔3提取元素组成列表。提取的子集为 [50,80] 特别注意,间隔 3 可理解为从起始索引位开始,向后开始数 1~3 ,要提取每次数到 3 时该索引位置的元素。

 1  alist=[3, '  @  ' , '  pen  ' , '  book  ' ,6, '  W  ' , '  top  '  ]  2   print (alist)   #  打印原列表 
 3   print ( "  列表的切片返回的是列表,可理解为获取原列表的子集  "  )  4   print (alist[:])   #  同样是打印原列表。列表切片使用的符号是冒号【:】,注意range()函数使用的是逗号【,】。列表用逗号【,】分隔 
 5   print (alist[:3])   #  未指定开始索引,从头开始到索引3(不包括索引3位置元素) 
 6   print (alist[3:])   #  未指定终止元素,切片未从索引3位置到列表最后 
 7   print (alist[0:2])   #  提取第1-2个元素 
 8   print (alist[1:5:2])   #  以2未步长,提取从第2个开始到第5个元素,即索引4位置元素。注意步长 
 9   print (alist[1::2])   #  以2为步长,提取从第2个开始到列表最后的元素 
 10   print (alist[-3:])   #  提取倒数第三位至最后的元素 
 11   print (alist[2:-2])  #  提取从第三位到倒数第二位之间的元素

以上代码运行的结果是:

   2. 遍历切片

  要遍历列表的部分元素,可在 for 循环中使用切片。下面的例子将遍历前三个元素并将其打印出来。

 1   print ( "  代码1:  "  )  2  alist=[3, '  @  ' , '  pen  ' , '  book  ' ,6, '  W  ' , '  top  '  ]  3  AA=alist[0:3 ]  4   for  a  in  AA:  5       print  (a)  6  
 7   print ( "  \n代码2:  "  )  8  alist_1=[3, '  @  ' , '  pen  ' , '  book  ' ,6, '  W  ' , '  top  '  ]  9   for  a  in  alist_1[:3 ]:  10       print (a)
 以上代码运行结果是:

  使用列表解析不能得到上面要求的结果:

 1   print ( "  \n'代码3:列表解析'不能得到提取前三个元素并将其打印的结果,因为列表解析得到的是列表  "  )  2  alist_2=[3, '  @  ' , '  pen  ' , '  book  ' ,6, '  W  ' , '  top  '  ]  3  a=[i  for  i  in  alist_2[:3 ]]  4   print (a)
 以上代码运行的结果是:

标签: python

添加新评论