上节我们讲到了for语句和用range()来创建元素,咱们在这个基础上于讲一点,值得思考的东西。
先来看例子:
——————————————
numbers = [value**2 for value in range(1,11)]
print(numbers)
结果是:[1,4,9,16,25,36,49,64,81,100,121]
——————————————
发现没,这个其实就是昨天平方数的简写,也叫列表解析,将for循环和创建新元素的代码合并成一行,并自动附加新元素,昨天我们用了5行代码,今天只用了2行就搞定了,熟能生巧。
切片
可以看作是对元素的一种抓取。
————————————————
names=["av","bv","cv","dv"]
print(names[0:3]
结果是:["av","bv","cv"]
————————————————
如果你没有指定第一个索引,Python将自动从列表开头开始,形式类似于print(names[:3])。同理,如果后面没有指定,则默认到最后一个为止。
复制列表
其实就是设入变量,跟之前临时变量赋值大致类似,学的多了,就会发现有好多是同理的。咱们还是举例为证:
————————————————
me=["a","b","c"]
friend=me[:]
print(me)
print(friend)
结果是:["a","b","c"]
["a","b","c"]
——————————————
也就是多了点切点功能,当然这里也可以加元素,使用append(),我提供一下思路,大家可以自行操作一下。
还是行将ma赋值给friend,再然后使用append()进行添加,当然你也可以试试删除元素,多尝试总是有好处的。
写到这里,有没有人问,为什么你赋值那么麻烦,为何不直接赋值
friend=me
我运算了一下,结果虽然能得到同样的结果,意义却不一样,我们看下面这个例子:
——————————————
me=["a","b","c"]
friend=me
me.append("d")
friend.append("f")
print(me)
print(friend)
结果是:["a","b","c","d","f"]
["a","b","c","d","f"]
————————————————
这里并不能如我们所愿,这是因为我们将me赋值给了friend,这两个其实是共用同一个列表,所以后面我们无论是利用哪一个,都会将新加的元素添加到共同的列表中,如果我们用的是friend=me[:],再次运算
这就能得到我们想要的结果了。错了不可怕,要自己思考解决方法才能真正掌握。
元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
——————————————————
numbers=(100,200)
print(numbers[0])
结果是:100
——————————————————
PS:元组的值不能被更改,这和列表是很不相同的。虽然不能修改元组的元素,但可以给存储元组的变量赋值。
——————————————
numbers=(100,200)
print(numbers[0]
numbers=(300,400)
print(numbers[0]
结果是:100
300
——————————————
相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。