Task03:列表与元组-1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45775242/article/details/102675970

列表

介绍

列表是最常用的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)

分片

语法:[start:stop:step]
注意

  • 同样第二个参数stop不包含
  • 参数如果不写,就是默认到列表头或者列表尾
list1 = ['NCEPU', 'LSGO', 1958]
print(list1[::-1])
print(list1[-1::-1])
print(list1[:-1:-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

注:特别感谢老马的程序人生,扩充了解压元组的知识!

猜你喜欢

转载自blog.csdn.net/weixin_45775242/article/details/102675970