今日内容回顾6.27
今日内容回顾
列表的内置方法
列表在调用内置方法的时候不会产生新的值,而是修改自身。
1.统计列表中数据值的个数(len)
list1 = ['jason', 'kevin', 'tony', 'oscar', 'tom', ]
print(len(list1)) # 5
2.在列表尾部追加数据值(.append)
ist1 = ['jason', 'kevin', 'tony', 'oscar', 'tom', ]
list1.append("增加") # 只能在尾部追加元素 无论是一个元素还是一个整体里面有多个元素 都会当成一个整体在尾部追加进去。
print(list1) # ['jason', 'kevin', 'tony', 'oscar', 'tom', '增加']
3.任意位置插入数据值(insert)
# ist1 = ['jason', 'kevin', 'tony', 'oscar', 'tom', ]。
# list1.insert(2,'任意位置') # 可以在任意位置追加元素 无论是一个元素还是一个整体里面有多个元素 都会当成一个整体按照索引位置追加进去
# print(list1) # ['jason', 'kevin', '任意位置', 'tony', 'oscar', 'tom']
# list1.insert(1,["bbb",'aaa']) #
# print(list1) # ['jason', ['bbb', 'aaa'], 'kevin', 'tony', 'oscar', 'tom']
4.扩展列表,推荐使用(extend)
list1 = ['jason', 'kevin', 'tony', 'oscar', 'tom', ]
list2 = [11, 77, 33, 88, 55, 99, 44, 66, ]
# 4.1 俩个列表之间直接相加
print(list2+list1) # [11, 77, 33, 88, 55, 99, 44, 66, 'jason', 'kevin', 'tony', 'oscar', 'tom']
# 4.2 使用for循环方式加上.append 尾部单个追加进去
for i in list2:
list1.append(i)
print(list1) # ['jason', 'kevin', 'tony', 'oscar', 'tom', 11, 77, 33, 88, 55, 99, 44, 66]
# 4.3(推荐使用).extend
list1.extend(list2) # 尾部追加元素 整体也会单个追加进去相当于使用for
print(list1) # ['jason', 'kevin', 'tony', 'oscar', 'tom', 11, 77, 33, 88, 55, 99, 44, 66]
5.查询与修改数据(remove)、(pop)
print(list1)
print(list1[0])
list1[0] = '123'
#5.1 删除数据
# del 通用数据删除
del list1[0] # 直接删除删除那个数据通过索引即可
print(list1) # ['kevin', 'tony', 'oscar', 'tom']
# 5.2 指明道姓删除.remove
list1.remove('tom') # 括号里必须是有这个数据没有直接报错!!!
print(list1) # ['jason', 'kevin', 'tony', 'oscar']
# 5.3 先取出后删除.pop
list1.pop() # 根据索引删除,默认删除末尾的值
print(list1) # ['jason', 'kevin', 'tony', 'oscar']
list1.pop(9) # 超出列表索引直接报错!!!
print(list1) # ['jason', 'kevin', 'oscar']
6.统计某个数据值在列表中出现的次数(count)
list1 = ['jason', 'kevin', 'tony', 'oscar', 'tom', ]
list2 = [11, 77, 33, 88, 55, 99, 44, 66, ]
print(list1.count('tom')) # 1
7.查看列表中某个数据值在列表中的索引(index)
print(list2.index(77)) # 1 必须是列表里有的否则直接报错!!!
8.排序
8.1 升序 .sort
# list2.sort()
# print(list2) # [11, 33, 44, 55, 66, 77, 88, 99]
# 8.2 降序 .sort(reverse=True)
# list2.sort(reverse=True)
# print(list2) # [99, 88, 77, 66, 55, 44, 33, 11]
9.翻转
l1.reverse()# 将列表顺序翻转
10.比较运算
new_1 = [99,11]
new_2 = [11,22,33]
print(new_1>new_2)#True 判断new_1是否大于new_2根据俩个列表之间索引所对应的值来做比较
# 不同数据类型之间默认不能直接做比较
# 字符串中纯字母的是跟据ASCII字符编码表对应的关系来做比较
# 列如A-Z 65-90
# a-z 97-122
可变不可变类型
字符串调用内置方法不是改变本身而是产生了新值而列表调用内置方法是改变自身。
1.可变类型
当一个数据类型它的值改变内存不变说明改变的是自身它是可变类型
不可变类型
当一个数据值改变内存地址一定变了的时候说明它是从本身又产生了一个新值它是不可变类型一旦改变了就不是它本身了相当于又建立了一个新值
元组内置方法
类型转换 能够被for循环的数据类型都可以转换成元组
还有当元组内只有一个数据值的时候一定要在括号内数据值后面加上一个逗号这样能表明它是一给元组类型不然系统会默认放什么数据类型就当作什么数据类型
# t1 = (11, 22, 33, 44, 55, 66)
# 1.索引相关操作
# 2.统计元组内数据值的个数
# print(len(t1))
# 3.查与改
# print(t1[0]) # 可以查
# t1[0] = 222 # 不可以改
"""元组的索引不能改变绑定的地址"""
# t1 = (11, 22, 33, [11, 22])
# t1[-1].append(33)
# print(t1) # (11, 22, 33, [11, 22,
字典的内置方法
类型转换
print(dict([('name','jason')('age',18)]))
print(dict(name='jason','age'=18))
#第一种是以列表套元组的方式
# 第二种是以变量名赋值操作直接定义
#字典一般很少涉及类型转换都是直接定义使用
dict1 = {
'age':18
'name':'jason'
'hobby':['rade','run']
}
#字典的k是对v的描述信息一般都是字符串因为字符串 k其实只要是不可变类型都行一般都是用字符串具有对v极强的描述性
#字典内k:v键值对是无序的 取值是根据k取值的
# 取值操作
# print(info['username']) # 不推荐使用 键不存在会直接报错
# print(info['xxx']) # 不推荐使用 键不存在会直接报错
# print(info.get('username')) # jason
# print(info.get('xxx')) # None
# print(info.get('username', '键不存在返回的值 默认返回None')) # jason
# print(info.get('xxx', '键不存在返回的值 默认返回None')) # 键不存在返回的值 默认返回None
# print(info.get('xxx', 123)) # 123
# print(info.get('xxx')) # None
# 3.统计字典中键值对的个数
# print(len(info))
# 4.修改数据
# info['username'] = 'jasonNB' 键存在则是修改
# print(info)
# 5.新增数据
# info['salary'] = 6 键不存在则是新增
# print(info) # {'username': 'jason', 'pwd': 123, 'hobby': ['read', 'run'], 'salary': 6}
# 6.删除数据
# 方式1
# del info['username']
# print(info)
# 方式2
# res = info.pop('username')
# print(info, res)
# 方式3
# info.popitem() # 随机删除
# print(info)
# 7.快速获取键 值 键值对数据
# print(info.keys()) # 获取字典所有的k值 结果当成是列表即可dict_keys(['username', 'pwd', 'hobby'])
# print(info.values()) # 获取字典所有的v值 结果当成是列表即可dict_values(['jason', 123, ['read', 'run']])
# print(info.items()) # 获取字典kv键值对数据 组织成列表套元组dict_items([('username', 'jason'), ('pwd', 123), ('hobby', ['read', 'run'])])
# 8.修改字典数据 键存在则是修改 键不存在则是新增
# info.update({'username':'jason123'})
# print(info)
# info.update({'xxx':'jason123'})
# print(info)
# 9.快速构造字典 给的值默认情况下所有的键都用一个
# res = dict.fromkeys([1, 2, 3], None)
# print(res)
# new_dict = dict.fromkeys(['name', 'pwd', 'hobby'], []) # {'name': [], 'pwd': [], 'hobby': []}
# new_dict['name'] = []
# new_dict['name'].append(123)
# new_dict['pwd'].append(123)
# new_dict['hobby'].append('read')
# print(new_dict)
# res = dict.fromkeys([1, 2, 3], 234234234234234234234)
# print(id(res[1]))
# print(id(res[2]))
# print(id(res[3]))
# 10.键存在则获取键对应的值 键不存在则设置 并返回设置的新值
res = info.setdefault('username', 'jasonNB')
print(res, info)
res1 = info.setdefault('xxx', 'jasonNB')
print(res1, info)
集合内置方法
set()
类型转换
支持for循环的 并且数据必须是不可变类型
1.定义空集合需要使用关键字才可以
2.集合内数据必须是不可变类型(整型 浮点型 字符串 元组 布尔值)
'''去重'''
# s1 = {1, 2, 12, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4}
# print(s1) # {1, 2, 3, 4, 5, 12}
#
# l1 = ['jason', 'jason', 'tony', 'oscar', 'tony', 'oscar', 'jason']
# s2 = set(l1)
# l1 = list(s2)
# print(l1)
'''关系运算'''
# print({1,2,[1,2,3]})
# print({1,2,{'name':'jason'}})
# s1 = {1, 2, 12, 3, 2, 3, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4}
# print(s1) # {1, 2, 3, 4, 5, 12}
#
# l1 = ['jason', 'jason', 'tony', 'oscar', 'tony', 'oscar', 'jason']
# s2 = set(l1)
# l1 = list(s2)
# print(l1)
# 模拟两个人的好友集合
f1 = {'jason', 'tony', 'oscar', 'jerry'}
f2 = {'kevin', 'jerry', 'jason', 'lili'}
# 1.求f1和f2的共同好友
# print(f1 & f2) # {'jason', 'jerry'}
# 2.求f1/f2独有好友
# print(f1 - f2) # {'oscar', 'tony'}
# print(f2 - f1) # {'lili', 'kevin'}
# 3.求f1和f2所有的好友
# print(f1 | f2) # {'jason', 'kevin', 'lili', 'oscar', 'jerry', 'tony'}
# 4.求f1和f2各自独有的好友(排除共同好友)
# print(f1 ^ f2) # {'kevin', 'lili', 'tony', 'oscar'}
# 5.父集 子集
# s1 = {1, 2, 3, 4, 5, 6, 7}
# s2 = {3, 2, 1}
# print(s1 > s2) # s1是否是s2的父集 s2是不是s1的子集
# print(s1 < s2)

浙公网安备 33010602011771号