序列

序列包括

  1. 字符串string
  2. 列表
  3. 元组
  4. 集合
    –序列式一块用来存放多个值得连续内存空间
    – 序列中存储的是对象的地址而不是值
  • 比如: a = [10,20, 30, 40]
    – 那么 a[0] = 10

1.列表list

  1. 用于储存人任意数目,任意类型的数据集合
  2. 列表可随时删减元素,大小可变
  3. 和字符串的区别是列表可存储任何类型数
    在这里插入图片描述
  4. 创建列表
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
>>> a = [20,30,40,"zrc"]
>>> a[0]
20
>>> a =list("gaoqi,sxt")
>>> a
['g', 'a', 'o', 'q', 'i', ',', 's', 'x', 't']
>>> a = list(range(0,10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 
  • 这里注意, range的用法:
    –range(start, end, step) 比如:
>>> a = range(15, 3, -1)
>>> list(a)
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>>> 
>>> b = range(4, 18, 2)
>>> list(b)
[4, 6, 8, 10, 12, 14, 16]
>>> 
  1. 推导式创建列表
  • a = [x*2 for x in range(5)] 循环创建多个元素
>>> a = [x*2 for x in range(5)]
>>> a
[0, 2, 4, 6, 8]
>>> a = [x*2 for x in range(100)if x%9==0]
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
>>> 
  1. 列表元素加减
  • append()
>>> a = [20, 40]
>>> a.append(50)
>>> a
[20, 40, 50]
  • 拼接操作
>>> a = a+[60]
>>> a
[20, 40, 50, 60]
>>> 
  • extend()方法:
    –属于原地操作,不创建新的列表对象,也就是说,和原列表是同一个id
>>> b = [20,40]
>>> id(b)
64859192
>>> b.extend([50,60])
>>> b
[20, 40, 50, 60]
>>> id(b)
64859192
>>> 
  1. 元素的删除
  • del 删除: 本质是数组的拷贝, 插入法的本职业是一样的
>>> a = [100, 200, 888, 300, 400]
>>> del a[2]
>>> a
[100, 200, 300, 400]
>>> 
  • pop()法删除
>>> b = [10,20,30,40,50]
>>> b.pop()
50
>>> b
[10, 20, 30, 40]
>>> 
>>>> c = b.pop(1)
>>> c
20
>>> b
[10, 30, 40]
>>> 
  • remove()删除
    删除首次出现的指定元素
>>> a = ["aa","bb","gao","cc","gao"]
>>> a.remove("gao")
>>> a
['aa', 'bb', 'cc', 'gao']
>>> a.remove("zhou")
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    a.remove("zhou")
ValueError: list.remove(x): x not in list
>>> 
  1. 插入元素
  • insert(新元素的位置,插入的内容)
>>> a = [10,20,30,40]
>>> a.insert(2,100)
>>> a
[10, 20, 100, 30, 40]
>>> 
  • 涉及大量元素时尽量避免使用
  1. 乘法扩展
  • 适用于乘法操作的还有字符串,元组

2. 元组tuple

  1. 元组属于不可变序列
  • 元组的核心是不可变序列
  • 元组的访问和处理速度比列标快
  • 与整数和字符串一样,元组可以作为字典的键,列表则不能作为字典的键使用
  1. 有下列操作:
    –索引
    –切片
    –连接
    –成员关系
    –比较
    –计数:长度,最大值,最小值,求和
  2. tuple(可传递对象)
>>> type(a)
<class 'tuple'>
>>> b = (20,)
>>> type(b)
<class 'tuple'>
>>> b = tuple("abcd")
>>> b
('a', 'b', 'c', 'd')
>>> b = tuple(range(3))
>>> b
(0, 1, 2)
>>> 
  1. 关于元组的排序:
    list 可以使用list.sorted()但是元组只能使用内置函数sorted(tupleObj)并生成新的列表对象
>>> b = (20,10,30,8, 9)
>>> sorted(b)
[8, 9, 10, 20, 30]
>>> 
  1. zip
  • zip(list1, list2, list3…) 将多个列表对应位置的元素组合为元组,并返回这个zip对象
>>> x = [1,2,3]
>>> y = [10,20,30]
>>> z =[5,8, 75]
>>> k = zip(x, y, z)
>>> list(k)
[(1, 10, 5), (2, 20, 8), (3, 30, 75)]
>>> 
  1. 生成器推导式创建元组
  • 需要注意,生成器只能访问一次元素,第二次就为空的了,比如:
>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x03925DB0>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s)
[]
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值