内容概要

  • 列表内置方法
  • 字典内置方法
  • 字符串转换成字典的方法 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数据类型内置方法的更多相关文章

  1. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  2. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  3. python循环与基本数据类型内置方法

    今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...

  4. python中其他数据类型内置方法

    补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...

  5. python 字典内置方法get应用

    python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...

  6. python-字典数据类型内置方法

    字典数据类型内置方法(必考) 用途:存多个值,不通过索引取值,可以用关键字找到对应得值 定义方式:{}内以key:value的方式存储多个值,值与值之间用逗号隔开 lis = ['ruixing', ...

  7. Python的内置方法,abs,all,any,basestring,bin,bool,bytearray,callable,chr,cmp,complex,divmod

    Python的内置方法 abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根) >>> ...

  8. while.for循环和基本数据类型内置方法

    while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...

  9. 【python基础】第11回 数据类型内置方法 02

    本章内容概要 列表内置方法 字典内置方法 元组内置方法 集合内置方法 可变类型与不可变类型 本章内容详细 1.列表内置方法 list 列表在调用内置方法之后不会产生新的值 1.1 统计列表中的数据值的 ...

随机推荐

  1. notepad++加到右键

    win10系统左下角点击"开始"->运行->regedit,打开注册表编辑器 在HKEY_CLAsssEs_RooT→ * → shell 下,在shell下,新建项命 ...

  2. 移动Web开发实践——解决position:fixed自适应BUG

    在移动web中使用position:fixed,会踩到很多坑,在我之前的一篇文章<移动端web页面使用position:fixed问题总结>中已经总结了很多bug,但是在后续的开发中有关f ...

  3. MySQL 中如何定位 DDL 被阻塞的问题

    经常碰到开发.测试童鞋会问,线下开发.测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决? 包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻塞它的 SQL ? ...

  4. JAVA多线程之并发编程三大核心问题

    概述 并发编程是Java语言的重要特性之一,它能使复杂的代码变得更简单,从而极大的简化复杂系统的开发.并发编程可以充分发挥多处理器系统的强大计算能力,随着处理器数量的持续增长,如何高效的并发变得越来越 ...

  5. Linux防火墙--IPtables企业级配置策略思路

    一.防火墙简介 防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内.外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术. 防火墙发展应用:最早 ...

  6. RocketMQ架构原理解析(一):整体架构

    RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & I ...

  7. Android官方文档翻译 十六 4.Managing the Activity Lifecycle

    Managing the Activity Lifecycle 管理activity的生命周期 Dependencies and prerequisites 依赖关系和先决条件 How to crea ...

  8. mysql5.7安装和卸载过程

    安装mysql 5.7 点击下面链接下载 mysql-5.7.27-winx64.zip 压缩文件 链接:https://pan.baidu.com/s/1CF5mmKkZkD_hxsjFOQJrzw ...

  9. blender建模常用建模快捷键

    编辑物体 M2选取 M2+SHIFT选取多个 A全选 B+M1矩阵选择 C+M1笔刷选择 CTRL+M1套索选择 CTRL+SHIFT+M1取消套索选择 ALT+M2选择边循环,面 CTRL+ALT+ ...

  10. Python SQL execute加参数的原理

    在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config ...