Python列表操作:遍历、range()、列表解析、列表切片、列表复制、元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表操作:遍历、range()、列表解析、列表切片、列表复制、元组相关的知识,希望对你有一定的参考价值。

参考技术A

记得 for ...... : 有冒号,循环内容要缩进(indent)来表示它属于当前循环。

缩进约定俗成打4个空格。

range 能生成一系列数字。几乎所有语言在数字范围上都遵循[left, right)的做法,故 range(left, right) 会生成一系列从left到right-1、步长为1的数字。

其他用法:

用法:

注意:

在上面的复制中, letters_copy = letters[:] 将拷贝一份 letters 的内容到 letters_copy 里, 如果你写 letters_copy = letters ,这将把 letters 赋给 letter_copy 从而使两者指向同一个变量:

可以看到 letters_copy = letters 将使两者成为同一个变量。

元组使用()而不是[],我们可以改变整个元组,而不能改变元组的元素。

03-Python-操作列表

1、遍历整个列表

1 magicians = [alice,david,carolina]
2 for magician in magicians:
3     print(magician)

 

2、创建数值列表

2.1、使用函数range()

1 for value in range(1.5):
2     print(value)  #打印1 2 3 4,不会打印5。

 

2.2、使用range()函数创建数字列表

 1 numbers = list(range(1,6))  #列表还可以用list1 = list()这个方法创建。
 2 print(numbers)
 3 
 4 #使用range()函数时,还可以制定步长。
 5 even_numbers = list(range(2,11,2))  #取偶数
 6 print(even_numbers)
 7 
 8 odd_numbers = list(range(1,11,2))  #取奇数
 9 print(odd_numbers)
10 
11 #求平方数
12 squares = []
13 for value in range(1,11):
14     square = value**2  #将每个数字的平方数储存在变量中
15     squares.append(square)  #将平方数存储至列表中
16 
17 print(squares) #打印列表

 

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

1 digits = [1,2,3,4,5,6,7,8,9,10]
2 print(min(digits))  #求最小值
3 print(max(digits))  #求最大值
4 print(sum(digits))  #求和

 

2.4、列表解析

1 squares = [values**2 for value in range(1,11)]  #列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
2 print(squares)

 

2.5、练习题

 1 #使用for循环打印数字1~20(包含)
 2 for v in range(1,21):
 3     print(v)
 4 
 5 #创建一个列表,包含数字1~100 0000,再打印出每个元素。
 6 li = list(range(1,1000001))
 7 for i in li:
 8     print(i)
 9 
10 #计算1~100 0000相加的总和。
11 li = list(range(1,1000001))
12 print(sum(li))
13 
14 #创建列表,包含1~20的所有奇数,并打印这些数字。
15 li = list(range(1,21,2)
16 for odd in li:
17     print(odd)
18 
19 #创建一个列表,其中包含3~30内能被3整除的数字,并打印出这些数字。
20 li = []
21 for i in range(3,31):
22     if i%3 == 0:  #余数为0,即能被3整除
23         li.append(i)  #符合条件的数字添加到列表中
24 
25 print(li)
26 for n in li:
27     print(n)
28 
29 ‘‘‘
30 方法二
31 li = list(range(3,31,3))
32 for i in li:
33     print(i)
34 ‘‘‘
35 
36 #创建一个列表,包含前10的整数的立方,并打印立方数。
37 li = []
38 for  i in range(1,11):
39     n = i**3  #将立方赋值给变量
40     li.append(n)  #变量的值存储到列表中
41     print(n)
42 
43 print(li)
44 
45 #立方解析
46 li = [i**3 for i in range(1,11)]

 

3、使用列表的一部分

3.1 切片

要使用切片,可指定要使用的第一个元素和最后一个元素的索引。和函数range()一样,Python在到达你指定的第二个索引前面的元素后停止。

 1 players = [charles , martina , michael , florence, eli]
 2 print(players[0:3])  #打印前三个元素
 3 
 4 print(players[ :4])  #打印前四个元素
 5 
 6 print(players[1: ])  #打印第二个元素至最后一个元素
 7 
 8 print(players[-1: ]) #打印最后一个元素
 9 
10 print(players[-3:])  #打印最后三个元素
11 
12 #遍历切片
13 players = [charles , martina , michael , florence, eli]
14 
15 print("Here are the first three players on my team: ")
16 for player  in players[ :3]:  #只遍历前三个队员
17     print(player.title())
18 
19 #复制列表
20 ‘‘‘
21 这样做不行!!!!
22 my_foods = [‘pizza‘,‘falafel‘,‘carrot cake‘]
23 friend_foods = my_foods  #这样只是将my_foods赋值给friend_foods,并没有将my_foods的副本存储到friend_foods。这种做法的两个变量都指向同一个列表(同一内存地址)
24 print(friend_foods)
25 print(id(my_foods))
26 print(id(friend_foods)) #内存地址都一样
27 
28 my_foods.append(‘cannoli‘)  
29 print(friend_foods)  #跟着变化
30 friend_foods.append(‘ice cream‘) 
31 print(friend_foods)
32 print(my_foods)  #跟着变化
33 ‘‘‘
34 
35 my_foods = [pizza,falafel,carrot cake]
36 friend_foods = my_foods[:]  
37 print(friend_foods)
38 print(id(my_foods))
39 print(id(friend_foods)) #内存地址不一样
40 
41 my_foods.append(cannoli)  
42 print(friend_foods)  
43 friend_foods.append(ice cream) 
44 print(friend_foods)
45 print(my_foods)  #和my_foods不一样

 

以上是关于Python列表操作:遍历、range()、列表解析、列表切片、列表复制、元组的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作列表

03-Python-操作列表

操作列表

python中的for i in range怎么用

python中的for i in range怎么用

Python编程:从入门到实践chapter4 操作列表