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])  #打印前三个元素,结果为列表:['charles', 'martina', 'michael']
 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不一样

 

posted @ 2017-10-16 17:53  Druid_Py  阅读(504)  评论(0编辑  收藏  举报