零基础玩转Python(7)
这一节为大家最后补充一点列表的切片和复制,以及Python中的元组。最后再简单聊聊编码规范。
7.1 列表的切片和复制
7.1.1 切片
列表切片,直白来讲就是将一个列表分为几个部分,我们直接看演示:
names = ['Alice', 'Bob', 'Mike', 'Mary']
print(names[1:3]) # 这边都是包前不包后
print(names[0:2])
print(names[:3])
print(names[:]) # 会打印整个列表
运行结果:
[‘Bob’, ‘Mike’]
[‘Alice’, ‘Bob’]
[‘Alice’, ‘Bob’, ‘Mike’]
[‘Alice’, ‘Bob’, ‘Mike’, ‘Mary’]
第三、四行通过names[start:end]
(不包括end的索引)来获取列表的子列表。
我们可以通过再:
左右进行缺省,像第六行,只会读取从names的开头开始直到索引是2的位置。
而第七行,使用[:]
可以将整个列表打印出来,和直接使用names
是一样的效果。
7.1.2 列表的复制
看如下代码示例:
colors = ['blue', 'white', 'purple', 'red']
print('原列表:')
print(colors)
print()
# 复制的两种方式
copy_colors = colors[:]
copy_colors2 = colors
print('复制的列表:')
print(copy_colors)
print()
# 修改原列表 观察复制的是否会变化
colors.append('green')
print('被修改的列表:')
print(colors)
print()
# 比较两种复制方式
print('未被修改的列表:')
print(copy_colors)
print(copy_colors2)
运行结果:
原列表:
[‘blue’, ‘white’, ‘purple’, ‘red’]
复制的列表:
[‘blue’, ‘white’, ‘purple’, ‘red’]
被修改的列表:
[‘blue’, ‘white’, ‘purple’, ‘red’, ‘green’]
未被修改的列表:
[‘blue’, ‘white’, ‘purple’, ‘red’]
[‘blue’, ‘white’, ‘purple’, ‘red’, ‘green’]
我们发现直接赋值的方法,会和原列表进行绑定,两个列表会同时变化,注意这边的copy_colors2
变量。
但是利用copy_colors = colors[:]
的方式不会随着colors
一起变化。在实际应用中,应当避免两个变量绑定在一起,会引起很多不必要的错误。
7.2 元组(Tuples)
7.2.1 定义元组
元组是Python的基本类型之一,我们来直观看看以下例子,这边使用了Python的交互界面。
我们使用( )
来定义元组:
>>> dimensions = (10, 5)
>>> dimensions[0]
10
>>> dimensions[1]
5
7.2.2 修改元组?
下面我们来试试修改元组:
>>> dimensions[0] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
当我们尝试对元组的单一元素进行修改的时候,发现会报错,元组被定义之后是不可再对他的值修改的。
但是我们可以直接把整个元组修改,也就是和变量的重新赋值一样:
>>> dimensions = (10, 5)
>>> dimensions
(10, 5)
>>> dimensions = (1, 1)
>>> dimensions
(1, 1)
7.3 编码规范
每一种语言都有不同的编码规范,Python中要注意的是缩进。
缩进采用四个空格或者Tab键,两者不可混用。只使用空格则是一个好习惯,官方文档中有关编码规范有许多讲究,当我们代码量上去了,规范尤为重要,感兴趣的小伙伴点击如下链接查看编码规范标准: