内容概要

  • 列表内置方法
  • 字典内置方法
  • 字符串转换成字典的方法 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. js 将数字型 的字符串 转 数字 【整数 /浮点型数字】

    1. js 提供了两种可以将 数字型 的字符串 转 数字 的方法 parseInt()和parseFloat(), parseInt() 是转成整数, 但 向下去整数 , parseFloat() 是 ...

  2. Hive的导入导出和常用过滤语句的学习

    原文: https://www.toutiao.com/i6769166601871688196/?group_id=6769166601871688196 数据的导入 load data [loca ...

  3. maven仓库策略

    当构建Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包(h ...

  4. Maven+ajax+SSM实现新增

    转载自:https://www.cnblogs.com/kebibuluan/p/9014986.html 20.尚硅谷_SSM高级整合_新增_创建员工新增的模态框.avi 1.接下来当我们点击增加按 ...

  5. 如何根据经纬度计算地面上某点在XYZ空间直角坐标系中的坐标

    如何根据经纬度计算地面上某点在XYZ空间直角坐标系中的坐标 /** * @param r: number 到地心的距离 * @param lon: number 经度 * @param lat: nu ...

  6. zabbix安装 报错 socket '/var/lib/mysql/mysql.sock' (13)]

    安装界面提示: Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/m ...

  7. 运行项目时出现Sat May 15 20:00:19 CST 2021 WARN: Establishing SSL connection without server‘s identity veri

    这时我们只需要在连接数据库的url上设置:useSSL=false就可以了.

  8. vs2012 error: package 'visual c++ package' failed to load

    某天打开Visual Studio突然出现了"error: package 'visual c++ package' failed to load",解决方案如下: 1. 依此顺序 ...

  9. Vue2和Vue3技术整理1 - 入门篇 - 更新完毕

    Vue2 0.前言 首先说明:要直接上手简单得很,看官网熟悉大概有哪些东西.怎么用的,然后简单练一下就可以做出程序来了,最多两天,无论Vue2还是Vue3,就都完全可以了,Vue3就是比Vue2多了一 ...

  10. 学习Java第1天

    今天所做的工作:1.了解Java语言的发展历史 2.安装了Eclipse软件 3.学习了Eclipse的基本使用方法 4.学习了Java基本输出语法 5.成功输出了helloworld 6.学习了Ja ...