python 第四章 操作列表与元组的使用
# 遍历整个列表
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
# 下面这种方式也可以遍历列表
for i in range(len(magicians)):
print(magicians[i])
# 然后的话呢我看书里面对于循环没有很好的介绍,所以我在这里简单介绍一下
for i in range(5):
print(i)
# 像上面这种形式呢,是简单的循环,因为range(5)就是说循环五次,并且i会从0开始,到4结束,每执行一次,i+1,当i=5的时候,循环结束。
# 像最上面的循环呢,就是for magician in magicians,由于magicians是一个列表,所以for magician in magicians,magician会依次取列表中的元素,然后执行下面的代码,当循环结束的时候,magician会等于列表中的最后一个元素。
# 然后在python中,由于没有括号的这一种说法,都是看缩进的,例如上面的for循环,那他会将下面的跟他相差一个tab的代码认为都是他的循环体
# 可能介绍的不是很好,读者有时间可以百度看一下详细的,因为这本书大致看了一下没有介绍循环这些,后面有介绍while循环,然后我们继续回到书里面的内容。
# 在for循环结束后执行一些操作
for i in range(len(magicians)):
print(magicians[i])
print("Thank you, everyone. That was a great magic show!")
# 此时循环结束后,会打印Thank you, everyone. That was a great magic show!并且只打印一次
# 然后再提一嘴,for循环后面的冒号,是python的语法,表示后面的代码是循环体,并且缩进了,表示这个代码是循环体里面的代码,,前面是循环条件
# 创建数值列表
# 使用range()函数
for value in range(1,5):
print(value)
# range()函数让python从指定多个第一个值开始数,并在到达指定的第二个值时停止,所以这里不会打印5
# 结束后会打印1,2,3,4,因为range(1,5)表示从1开始,到5结束,但是不包含5
for value in range(6):
print(value)
# 当range()函数只有一个参数的时候,range()会返回一个包含从0开始的所有数字的列表
# 这里会打印0,1,2,3,4,5,因为range(6)表示从0开始,到6结束,但是不包含6
# 使用range()函数创建数值列表
# list()函数可以将range()函数生成的结果转换为列表,将range()函数作为list()函数的参数传递进去,输出则是一个数值列表
numbers = list(range(1,6))
print(numbers)
# 在使用range()函数时,还可以指定步长,第三个参数就是步长,不写明的话默认是1
for value in range(1,10,2):
print(value)
# 这个循环会打印1,3,5,7,9,因为步长是2,所以每次value都会加2
# 下面这几个循环是我自己在验证这个是用的用法,发现输出好像并不是和我们上面所讲的切合。不过初学也没有必要去深究这些底层细节,咱们先把书上的内容学完再说吧,这里就留个心眼,如果各位读者有兴趣的话,可以自己去研究一下这些细节,或者在评论区一起讨论
for value in range(1,10,2):
print(value)
value += 3
print("----")
for value in range(1,10,2):
value += 3
print(value)
print("----")
for value in range(1,10):
value += 3
print(value)
# 对数值列表执行简单的统计计算
numbers = list(range(1,11))
# 求列表中的最小值
print(min(numbers))
# 求列表中的最大值
print(max(numbers))
# 求列表中所有数的和
print(sum(numbers))
# 列表推导式,这个感觉还挺有趣,软考好像出过类似的选择题
squares = [value**2 for value in range(1,11)]
print(squares)
# 针对上面这个列表推导式,讲解一下:使用列表推导式,首先指定一个描述性的列表名,如squares,然后就是一对方括号,方括号里面先写表达式,如上面的value**2,然后是for循环,用来给表达式提供值,如上面的for value in range(1,11),整个列表推导式的意思就是
# 创建一个包含1到10的平方的列表。可能刚开始看不习惯,但是写熟练之后会喜欢上这种写法的,毕竟刷力扣的时候看见别人题解python的一行代码流还是很羡慕的。
# 然后下面这种也可以实现上面的列表推导式的功能
squares2 = list(value**3 for value in range(1,11))
print(squares2)
# 使用列表的一部分
# 切片:要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与range()函数类似,Python在到达指定的最后一个元素时停止,因此切片包含第一个索引处的元素,但不包含最后一个索引处的元素。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# 获取列表的前3个元素
print(players[0:3])# 这里可以发现切片之后的数据也是列表
# 其实列表还是很强的,可以获取列表的任意子集
# 如果要让Python从列表开头开始切片,可省略第一个索引
print(players[:3])
# 如果要获取列表末尾的元素,可省略最后一个索引
print(players[2:])
# 在上一章说过,负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片
# 比如输出列表最后三个元素
print(players[-3:])
# 然后这个也可以指定步长,第三个参数就是步长
print(players[0:5:2])
# 遍历切片
# 遍历前三个元素
for player in players[:3]:
print(player.title())
# 复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
# my_foods[:]形式表示切片从第一个元素到最后一个元素
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
# 然后一些朋友可能会想friend_foods = my_foods是否可以实现同样的效果呢,但是这个是不行的,这种写法是表明两个变量指向了同一个列表,这样修改friend_foods,my_foods也会被修改,不信的话,各位可以试试分别用两种方式,然后分别添加和删除元素,看看两个列表是否还一样
# 元组:元组看起来很像列表,但是元组用小括号括起来,元组中的元素用逗号隔开,元组中的元素不能被修改,元组一旦被创建,就不能被修改。
dimensions = (200, 50)
# 访问元素,和列表的语法相同
print(dimensions[0])
print(dimensions[1])
# 然后呢元组是以逗号来标识的,因此当元组中只有一个元素时,为了让Python将其识别为元组,必须在元素后面添加一个逗号
tzh=(5)
print(type(tzh))
zxy=(5,)
print(type(zxy))
# 这里我们不加括号,看看是否能识别为元组
dimensions = 200, 50
print(dimensions)
print(type(dimensions))# 想必通过上面几行代码的输出,各位现在知道为什么了吧
# 遍历元组中的所有值
# 和列表一样,可以使用for循环来遍历元组中的所有值
for dimension in dimensions:
print(dimension)
# 修改元组变量:虽然不能修改元组的元素,但可以给表示元组的变量赋值,虽然感觉这个跟没说一样,列表一样可以,也许是元组只能这么修改吧,所以书上将这里提出来.
dimensions1 = (400, 100)
print(dimensions1)
dimensions1 = (800, 200)
print(dimensions)
# 然后这章后面差不多就没了,后面就是代码格式规约,但是我感觉对于初学来说并不是特别重要,但是上班的话肯定是特别重要的。这一部分留给大家闲来无事的可以上网搜搜看看
更多推荐


所有评论(0)