Task03:列表与元组-1
Task03:列表与元组-1
- 列表
- 介绍
- 创建
- 删除
- 添加
- 分片
- 拷贝
- 列表操作符
- 元组
- 介绍
- 创建
- 更新
- 解压元组
- 参考资料
列表
介绍
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表就是一个集装箱,他可以存放列表,元组,字典,集合,字符串。
创建
list1 = ['NCEPU', 'LSGO', 1958]
list2 = [1, 2, 3, 4, 5 ]
list3 = ['L','S','G','O']
## 访问
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符
```python
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
注意:
- 索引值从0开始
- 截取时,不包括第二个参数
删除
可以用的语句有:remove,pop,del
list1 = ['NCEPU', 'LSGO', 1958]
list1.remove('ncepu')
print(list1)
#['LSGO', 1958]
list1 = ['NCEPU', 'LSGO', 1958]
list1.pop()
print(list1)
list1.pop(0)
print(list1)
#['NCEPU', 'LSGO']
#['LSGO']
list1 = ['NCEPU', 'LSGO', 1958]
del list1[0],list1[1]
print(list1)
['LSGO']
注意:
- del 语句 删除第一个后 索引值就变化了 所以输出的不是1958
- pop([index=-1])
添加
append,extend,insert
注意
- append添加时作为一整个元素,而extend是列表的扩充。
- insert的语法:insert(index, obj)
分片
语法:[startstep]
注意:
- 同样第二个参数stop不包含
参数如果不写,就是默认到列表头或者列表尾
list1 = [‘NCEPU’, ‘LSGO’, 1958]
print(list1[::-1])
print(list1[-1::-1])
print(list1[-1])
[1958, ‘LSGO’, ‘NCEPU’]
[1958, ‘LSGO’, ‘NCEPU’]
[]
拷贝
注意
>>> list1 = [1, 3, 2, 9, 7, 8]
>>> list2 = list1[:]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3 = list1
>>> list3
[1, 3, 2, 9, 7, 8]
>>> list1.sort()
>>> list1
[1, 2, 3, 7, 8, 9]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3
[1, 2, 3, 7, 8, 9]
列表操作符
连接操作符 +
重复操作符 *
注:
- 前面三种方法(append, extend, insert)可对列表增加元素,它们没有返回值,是直接修改了原数据对象。
- 将两个list相加,需要创建新的 list 对象,从而需要消耗额外的内存,特别是当 list 较大时,尽量不要使用 “+” 来添加list。
元组
介绍
Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。
创建
tuple1=() #空元组
tuple1=(1,)#单个元素元组
tuple1=((1,9),(5,8))#二维元组
更新
week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week) # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
t1 = (1, 2, 3, [4, 5, 6])
print(t1) # (1, 2, 3, [4, 5, 6])
t1[3][0] = 9
print(t1) # (1, 2, 3, [9, 5, 6])
注:
- 元组有不可更改 (immutable) 的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改 (mutable),那么我们可以直接更改其元素,注意这跟赋值其元素不同。
- 元组拼接 (concatenate) 有两种方式,用「加号 +」和「乘号 *」,前者首尾拼接,后者复制拼接。
解压元组
解压(unpack)一维元组(有几个元素左边括号定义几个变量)
t = (1, 10.31, 'python')
(a, b, c) = t
print(a, b, c)
# 1 10.31 python
解压二维元组(按照元组里的元组结构来定义变量)
t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d)
# 1 10.31 OK python
如果你只想要元组其中几个元素,用通配符「*」,英文叫 wildcard,在计算机语言中代表一个或多个元素。下例就是把多个元素丢给了 rest 变量。
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]
如果你根本不在乎 rest 变量,那么就用通配符「*」加上下划线「_」,例子如下:
a, b, *_ = t
print(a, b) # 1 2
参考资料
- LSGOGroup 老马的程序人生
- FishC.com
- Runoob.com
注:特别感谢老马的程序人生,扩充了解压元组的知识!
还没有评论,来说两句吧...