python数据类型内置方法
内容概要
- 列表内置方法
- 字典内置方法
- 字符串转换成字典的方法 eval()
- 元组内置方法
- 元组相关笔试题
- 集合内置方法
列表内置方法
l1 = [2, 4, 5, 7, 3, 9, 0, 6]
# 升序
l1.sort()
# 降序
l1.sort(reverse=True)
# 顺序颠倒
l1.reverse()
# 切片取值
print(l1[1:5])
print(l1[::-1]) # 冒号左右两边不写数字默认全部都要,-1步长表示倒序取值(reverse())
print(l1[:5]) # 冒号左边不写默认从头开始
print(l1[1:]) # 冒号右边不写默认取值到末尾
# 列表比较, 从列表的第一个值开始比较
list1 = [66, 11]
list2 = [55, 99, 22]
print(list1 > list2)
# 字符串比较是比较代表字符的字符编码数字
str1 = 'hello'
str2 = 'abc'
print(str1 > str2)
字符串如果想类型转换成字典 eval()
str1 = '{"name": "elijah", "age": 18, "hobby": "beauty"}'
print(str1, type(str1))
user_dict = eval(str1)
print(user_dict, type(user_dict))

字典内置方法
dic = {
'name': 'elijah',
'age': 23,
'hobby': ['read', 'sport']
}
# 1.按k取值 k不存在会直接报错
print(dic['name'])
# print(dic['pwd']) # 报错
# 2.按k值修改值 或者新增键值对(使用频率高)
dic['name'] = 'jason'
dic['hobby'].append('basketball')
dic['pwd'] = 123 # 键不存在就是新增键值对
# 3.统计字典内部键值对个数
print(len(dic))
# 4.成员运算 默认只暴露k
print('elijah' in dic)
dic = {
'name': 'elijah',
'age': 23,
'hobby': ['read', 'sport']
}
# 5.删除元素
# 5.1 del
del dic['name']
print(dic)
# 5.2 .pop() 指定k弹出键值对 给出v
dic.pop('age')
print(dic)
# 5.3 .popitem() 弹出键值对 组织成元组的形式 第一个元素是k第二个元素是v
print(dic.popitem())
print(dic)

# 6.获取v值
print(dic['name']) # 键不存在直接报错 按k取值不太推荐使用该方式
print(dic['xxx']) # 键不存在直接报错 按k取值不太推荐使用该方式
print(dic.get('name'))
print(dic.get('xxx')) # None 键不存在 不会报错返回None
print(dic.get('name', '哈哈哈'))
print(dic.get('xxx', '哈哈哈')) # 第二个参数 可以在k不存在的时候自定义返回信息
print(dic)

# 7.keys() values() items() 在python2中是列表, 在python3中是迭代器(老母猪)
print(dic.keys()) # dict_keys(['name', 'age', 'hobby'])
print(dic.values()) # dict_values(['elijah', 23, ['read', 'sport']])
print(dic.items()) # dict_items([('name', 'elijah'), ('age', 23), ('hobby', ['read', 'sport'])])
# 获取字典里面所有键值对 组织列表套元组的形式, 元组内有两个元素,一个是k一个是v

字典需要了解方法


# 1.更新字典 键存在则修改 不存在则创建
dic.update({'name': 'jasonNB', 'pwd': 123})
print(dic)
# 2.初始化字典
print(dict.fromkeys(['k1', 'k2', 'k3'], []))
'''笔试题'''
res = dict.fromkeys(['k1', 'k2', 'k3'], [])
print(res)
res['k1'].append(11)
print(res)
res['k2'].append(22)
res['k3'].append(33)
print(res)
# 单独给k1取值,不影响k2k3
res['k1'] = [5, 6, 7]
print(res)

# 3.当键存在的情况下 不修改而是获取该键对应的值
print(dic.setdefault('name', 'jasonNB'))
print(dic)
# 当键不存在的情况下 新增一组键值对 并且该方法的结果是新增的值
print(dic.setdefault('pwd', '123'))
print(dic)
元组内置方法
'''
小括号括起来,内部存放多个元素,元素之间用逗号隔开
元素可以是任意数据类型,但元组内元素不支持‘修改’(索引指向的元素的内存地址不能改变)(元组内列表的值改变了内存地址也不会变)
可以简单认为元组是不可变的列表
'''
# 类型转换,能支持for循环的数据都可以转换成元组
print(tuple(111)) # 报错
print(tuple(11.11)) # 报错
print(tuple('hello')) # ('h', 'e', 'l', 'l', 'o')
print(tuple([11,22,33])) # (11, 22, 33)
print(tuple({'name':'jason','pwd':123})) # ('name', 'pwd')

t1 = (111)
t2 = (11.11)
t3 = ('hello')
t4 = (111,)
print(type(t1))
print(type(t2))
print(type(t3))
print(type(t4))

# t = (111, 222, 333, 444, 555)
# 1.索引取值
# print(t[2])
# print(t[-1])
# 2.切片操作
# print(t[1:5])
# print(t[1:])
# print(t[:])
# 3.步长
# print(t[1:5:2])
# 4.统计元组内元素的个数
# print(len(t)) # 5
# 5.for循环
# for i in t:
# print(i)
# 6.count计数
# print(t.count(111)) # 1
'''笔试题'''
t1 = (111, 222, [1, 2, 3])
print(t1)
t1[2].append(5)
print(t1)

集合去重操作
# 定义
s1 = set()
# 类型转换 能够支持for循环的数据类型都可以转成集合(元素是不可变类型)
'''集合内元素是无序的'''
# 去重
s2 = {1,1,1,12,2,2,2,23,3,3,3,3,4,4,4}
print(s2)

"""课堂练习题"""
ll = [33, 22, 11, 22, 11, 44, 33, 22, 55, 66, 77, 77, 66, 55, 44]
# 基本要求:去重即可
s1 = set(ll)
ll = list(s1)
print(ll) # [33, 66, 11, 44, 77, 22, 55]
# 拔高要求:去重并保留原来的顺序
# 定义一个新列表
l1 = []
# 按顺序循环列表的值
for i in ll:
# 如果值不在新列表内则添加,有则跳过
if i not in l1:
l1.append(i)
print(l1) # [33, 22, 11, 44, 55, 66, 77]
集合关系运算
# 交集 (共同好友)
print(friends1 & friends2) # {'kevin', 'egon'}
# 并集 (两人所有的好友)
print(friends1 | friends2) # {'elijah', 'jason', 'kevin', 'amy', 'tony', 'egon'}
# 差集 各自独有的好友
print(friends1 - friends2) # {'jason', 'elijah'}
print(friends2 - friends1) # {'tony', 'amy'}
# 对称差集 各自的好友相加去掉共同的好友
print(friends1 ^ friends2) # {'jason', 'amy', 'elijah', 'tony'}

# .difference() 相当于 friends1 - friends2 和 friends2 - friends1
print(friends1.difference(friends2))
print(friends2.difference(friends1))
# .intersection() 相当于 & 交集
print(friends1.intersection(friends2))
# .symmetric_difference() 相当于 friends1 ^ friends2
print(friends1.symmetric_difference(friends2))
# .union() 相当于 friends1 | friends2
print(friends1.union(friends2))
# 父集和子集
s1 = {1, 2, 3, 4, 5}
s2 = {1, 2}
print(s1 > s2) # 判断s1是否是s2的父集 True
print(s2 < s1) # 判断s2是否是s1的子集 True

# 即报名python 又报名 linux
pythons & linuxs
# 所有报名的学生
pythons | linuxs
# 只报名了python
pythons - linuxs
# 没有同时报名两门课的学员
pythons ^ linuxs
python数据类型内置方法的更多相关文章
- python数据类型内置方法 字符串和列表
1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- python循环与基本数据类型内置方法
今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...
- python中其他数据类型内置方法
补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...
- python 字典内置方法get应用
python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...
- python-字典数据类型内置方法
字典数据类型内置方法(必考) 用途:存多个值,不通过索引取值,可以用关键字找到对应得值 定义方式:{}内以key:value的方式存储多个值,值与值之间用逗号隔开 lis = ['ruixing', ...
- Python的内置方法,abs,all,any,basestring,bin,bool,bytearray,callable,chr,cmp,complex,divmod
Python的内置方法 abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根) >>> ...
- while.for循环和基本数据类型内置方法
while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...
- 【python基础】第11回 数据类型内置方法 02
本章内容概要 列表内置方法 字典内置方法 元组内置方法 集合内置方法 可变类型与不可变类型 本章内容详细 1.列表内置方法 list 列表在调用内置方法之后不会产生新的值 1.1 统计列表中的数据值的 ...
随机推荐
- notepad++加到右键
win10系统左下角点击"开始"->运行->regedit,打开注册表编辑器 在HKEY_CLAsssEs_RooT→ * → shell 下,在shell下,新建项命 ...
- 移动Web开发实践——解决position:fixed自适应BUG
在移动web中使用position:fixed,会踩到很多坑,在我之前的一篇文章<移动端web页面使用position:fixed问题总结>中已经总结了很多bug,但是在后续的开发中有关f ...
- MySQL 中如何定位 DDL 被阻塞的问题
经常碰到开发.测试童鞋会问,线下开发.测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决? 包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻塞它的 SQL ? ...
- JAVA多线程之并发编程三大核心问题
概述 并发编程是Java语言的重要特性之一,它能使复杂的代码变得更简单,从而极大的简化复杂系统的开发.并发编程可以充分发挥多处理器系统的强大计算能力,随着处理器数量的持续增长,如何高效的并发变得越来越 ...
- Linux防火墙--IPtables企业级配置策略思路
一.防火墙简介 防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内.外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术. 防火墙发展应用:最早 ...
- RocketMQ架构原理解析(一):整体架构
RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & I ...
- Android官方文档翻译 十六 4.Managing the Activity Lifecycle
Managing the Activity Lifecycle 管理activity的生命周期 Dependencies and prerequisites 依赖关系和先决条件 How to crea ...
- mysql5.7安装和卸载过程
安装mysql 5.7 点击下面链接下载 mysql-5.7.27-winx64.zip 压缩文件 链接:https://pan.baidu.com/s/1CF5mmKkZkD_hxsjFOQJrzw ...
- blender建模常用建模快捷键
编辑物体 M2选取 M2+SHIFT选取多个 A全选 B+M1矩阵选择 C+M1笔刷选择 CTRL+M1套索选择 CTRL+SHIFT+M1取消套索选择 ALT+M2选择边循环,面 CTRL+ALT+ ...
- Python SQL execute加参数的原理
在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config ...