python第四章--组合数据类型(备忘)

一 列表

列表的表达
序列类型:内部元素有位置关系,能通过位置序号访问其中元素
列表是一个可以使用多种类型元素,支持元素的增、删、查、改操作的序列类型
另一种产生方式:list(可迭代对象)
可迭代对象包括:字符串、元组、集合、range()等
range(起始数字,中止数字,数字间隔)
如果起始数字缺省,默认为0;必须包含中止数字;数字间隔缺省,默认为1
a.range()转列表:

list(range(1, 11, 2))

列表的性质
b.反向切片
print(cars[:-4:-1]) # 开始位置缺省,默认为-1
print(cars[::-1]) # 获得反向列表,不改变原来列表次序
列表的操作符
c.用 list1+lis2 的形式实现列表的拼接
用 nlist 或 listn 实现列表的成倍复制,初始化列表的一种方式[0]*10
列表的操作
d.在末尾整体并入另一列表——列表1.extend(列表2)
append 将列表2整体作为一个元素添加到列表1中
e.删除列表i位置的元素  列表.pop(位置)
不写位置信息,默认删除最后一个元素
f.删除列表中的第一次出现的待删元素 列表.remove(待删元素)
g.列表中第一次出现待查元素的位置 列表.index(待查元素)
h.列表的复制
错误的方式–直接赋值
正确的方式——浅拷贝
方法1:列表.copy()
方法2:列表2=原列表[ : ]
i.使用列表.sort()对列表进行永久排序
直接在列表上进行操作,无返回值
ls.sort(reverse = True)递减排序
j.使用sorted(列表)对列表进行临时排序
原列表保持不变,返回排序后的列表
k.列表的翻转
使用列表.reverse()对列表进行永久翻转
直接在列表上进行操作,无返回值

ls = [1, 2, 3, 4, 5]
print(ls[::-1])
ls
这种方式不改变原ls的元素次序

二 元组

不可变的列表
元组的常见用处
打包与解包

def f1(x):              # 返回x的平方和立方
    return x**2, x**3   # 实现打包返回

print(f1(3))
print(type(f1(3)))      # 元组类型
numbers = [201901, 201902, 201903]
name = ["小明", "小红", "小强"]
list(zip(numbers,name))
for number,name in zip(numbers,name):   # 每次取到一个元组,立刻进行解包赋值
    print(number, name)

三 字典

字典的表达
映射类型: 通过“键”-“值”的映射实现数据存储和查找
常规的字典是无序的
字典键的要求
1、字典的键不能重复
2、字典的键必须是不可变类型,如果键可变,就找不到对应存储的值了
不可变类型:数字、字符串、元组。  一旦确定,它自己就是它自己,变了就不是它了。
可变类型:列表、字典、集合。  一旦确定,还可以随意增删改。
字典的性质
字典的长度——键值对的个数
字典的操作方法
1、增加键值对
变量名[新键] = 新值
2、删除键值对
通过del 变量名[待删除键]
通过变量名.pop(待删除键)
变量名.popitem() 随机删除一个键值对,并以元组返回删除键值对

students = {201901: '小明', 201902: '小红', 201903: '小强'}
key, value = students.popitem()
print(key, value)
print(students)

3、修改值
通过先索引后赋值的方式对相应的值进行修改
4、d.get( )方法
d.get(key,default) 从字典d中获取键key对应的值,如果没有这个键,则返回default
小例子:统计"牛奶奶找刘奶奶买牛奶"中字符的出现频率

s = "牛奶奶找刘奶奶买牛奶"
d = {}
print(d)
for i in s:
    d[i] = d.get(i, 0)+1
    print(d)
# print(d)
{}
{'牛': 1}
{'牛': 1, '奶': 1}
{'牛': 1, '奶': 2}
{'牛': 1, '奶': 2, '找': 1}
{'牛': 1, '奶': 2, '找': 1, '刘': 1}
{'牛': 1, '奶': 3, '找': 1, '刘': 1}
{'牛': 1, '奶': 4, '找': 1, '刘': 1}
{'牛': 1, '奶': 4, '找': 1, '刘': 1, '买': 1}
{'牛': 2, '奶': 4, '找': 1, '刘': 1, '买': 1}
{'牛': 2, '奶': 5, '找': 1, '刘': 1, '买': 1}

5、d.keys( ) d.values( )方法

6、d.items( )方法及字典的遍历

print(list(students.items()))
for k, v in students.items():
    print(k, v)

四 集合

集合的表达
一系列互不相等元素的无序集合
元素必须是不可变类型:数字,字符串或元组,可视作字典的键
可以看做是没有值,或者值为None的字典
集合的运算
小例子 通过集合进行交集并集的运算
S & T 返回一个新集合,包括同时在集合S和T中的元素
S | T 返回一个新集合,包括集合S和T中的所有元素
S ^ T 返回一个新集合,包括集合S和T中的非共同元素
S - T 返回一个新集合,包括在集合S但不在集合T中的元素
集合的操作方法
增加元素——S.add(x)
移除元素——S.remove(x)
集合的长度——len(S)
集合的遍历——借助for循环

for star in stars:
    print(star)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值