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 统计列表中的数据值的 ...
随机推荐
- java单元测试调用mybatis接口并执行
今天想使用单元测试类,存储一些数据到mysql,可是,一直在报错,org.springframework.beans.factory.NoSuchBeanDefinitionException: No ...
- 为 MySQL 的 root 用户设置一个密码。
shell> mysqladmin --user=root password somepasswordshell> mysqladmin --user=root --password re ...
- centos7 配置rm命令失效。
之前写过一篇alias别名的方法,但这个方法配置rm命令在重启后就无效了.而且重启后得输入source alias_test.sh.才可以 centos7 alias别名永久生效 原因是:root用户 ...
- Linux上天之路(二)之Linux安装
1. vmware workstation使用 VMware是全球领先的虚拟化公司,为客户提供虚拟化解决方案,个人虚拟化产品workstation,可以让用户通过虚拟化的方式在一台物理电脑中安装多个操 ...
- Win10编辑Host文件授权问题
今天重温Kafka命令, 使用KafkaTool连接Broker,需要修改主机名,发现host修改时,提示以下错误: C:\Windows\System32\drivers\etc\hosts.txt ...
- Redis 应用问题
Redis 应用问题 1.缓存穿透 1.1.问题概述 key 对应的数据在数据源中不存在,每次针对此 key 的请求从缓存获取不到,请求都会压到数据源(也就是不断的去查数据库,从而使得数据库系统崩溃) ...
- 机器学习&恶意代码动态检测
目录 写在前面 1 基于API调用的统计特征 2 API序列特征 3 API调用图 4 基于行为的特征 references: 写在前面 对恶意程序动态检测方法做了概述, 关于方法1和2可以参考阿里云 ...
- 【C primer plus】初始化链表函数的错误
C primer plus第六版 的一处错误 第五百页17.3.4 实现接口的程序清单17.5中的初始化链表函数有误 #源代码 void InitializeList(List * plist) { ...
- AVD模拟器怎么配置上网
转自:http://blog.csdn.net/you_jinjin/article/details/7228303 方法一 首先,Windows下,配置Adroid环境变量(Win7为例) 1.桌面 ...
- leetcode 51. N皇后 及 52.N皇后 II
51. N皇后 问题描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后 ...