python序列之列表和元组

序列

数据存储方式,存储一系列的数据,内存中,序列就是一块用来存放多个值得连续内存空间
序列包含:字符串 列表 元祖 字典 集合

1.列表

列表的大小可变,根据需要随时增加和缩小,列表地址不变

1.1 列表的创建

1.1.1基本语法创建

a = ['abc', '123', '20']
a = []   # --创建空列表

1.1.2 list( )创建

a = list()
a = list(range(10))
a = list('abc')   # --直接将字符串转化为列表

1.1.3 推导式创建 控制语句

a = [i**2 for i in range(10)]
print(a)

1.2 列表元素的增加

我们一般只在列表的尾部增加或删除元素,这样提高操作效率

1.2.1 append()方法

a = ['abc', '123', '20']
a.append('10')
a.append(['10', '20'])  # --插入一个元素list
print(a)

1.2.2 extend()方法

a.extend(['10', '20'])  #--插入两个元素
print(a)

1.2.3 insert()方法

a.insert(2, '10')  # --在指定切片位置插入
print(a)

1.3 列表元素的删除

1.3.1 del()删除

a = ['abc', '123', '20']
del(a[2])  # --删除某个位置的元素,其他重新排序
del(a[1:2]) #--可以同时删除多个元素
print(a)

1.3.2 pop()删除

a = ['abc', '123', '20']
a.pop(1) # -- 删除某个位置,默认删除最后一个
print(a)

1.3.3 remove()删除

a = ['abc', '123', '20']
a.remove('abc') # -- 删除指定元素
print(a)
`

1.4 列表元素访问和计数

1.4.1通过索引[ ] 直接访问

a = ['abc', '123', '20']
print(a[1])

1.4.2 index()首次出现的索引

a = ['abc', '123', '20', 'cde', '10']
print(a.index('abc')) # --可以设置搜索范围index(value,satrt,end)

1.5 切片操作(与str相近)

a = ['abc', '123', '20', 'cde', '10']
print(a[:5:2])
print(a[::-1])  # --取逆
print(a[-1:-4:-1]) # --注意写法

1.6 列表的排序

1.6.1修改原列表,不建新列表的排序

import random
a = [10, 20, 40, 30]
# print(sort(a))
a.sort()   #--False为升序
print(a)
random.shuffle(a)   # --进行乱序排列
print(a)

1.7 列表的内置函数

min max sum等

2.8 多维列表

a = [
    ['zs', 180, '男'],
    ['ls', 160, '女'],
    ['ww', 175, '中性'],
    ]
print(a[1][2])

2.元祖 tuple

列表属于可变序列,元祖属于不可变序列
元祖没有增加,修改删除等改变表的操作

2.1元祖的创建

2.1.1通过()创建,()也可以省略

a = ()  # 空列表
a = (1,)  #单个字符要加,
a = 1, 2   #可以不加()
print(a)

2.1.2通过tuple()创建

a = tuple()
print(type(a))
a = tuple([1, 2, 3])  # --list转为tuple
a = tuple('abc')  # --str转化为tuple
a = tuple(range(10)) # --迭代器传给tuple
print(a)

2.2 元祖元素的访问和计数

2.2.1 zip()用法

a = [10, 20, 30]
b = [20, 30, 40]
c = zip(a,b)   # -- c是一个zip对象
print(list(c))  # -- 元祖组合起来的列表

2.3 生成器推导式创建元祖

# 必须加上tuple,否则只是个迭代器
a = tuple(i for i in range(11) if i % 2 == 0)
print(a)

next()调用迭代器对象

a = (i for i in range(11))
print(a.__next__())  # --返回0
print(a.__next__())  # --返回1

2.4 元祖总结

  • 不可变序列
  • 元祖的访问和处理速度比list快很多
  • 元祖可以作为字典键,列表不可以

你可能感兴趣的:(笔记)