数据内置方法

news/发布时间2024/5/5 10:44:05

1 元组类型内置方法

【一】元组的定义

() 在元组的内部,只有一个元素的时候要+ ’ , ‘ 。如果不加’ , ‘就会变成了一个字符串或者是其他的类型。

【二】类型强转

转换其他数据类型为元组

整数类型不行,布尔类型也不行

print(tuple([1,2,3]))  #(1,2,3)
print(tuple('happy')) #('h','a','p','p','y')
print(tuple({1,2,2}))  #(1,2)
print(tuple({'username':"happy"}))  # ('username',)

【三】索引取值

num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(num_tuple[0])  # 1
# 切片:顾头不顾尾
print(num_tuple[0:5]) #(1, 2, 3, 4, 5)
#不支持根据索引修改指定索引的值
num_tuple[0] = 999   #error

【四】计算元素个数

print(len((1, 2, 3,4,5)))  # 5

【五】成员运算

 print(3 in (1,2,3))  #Trueprint(4 in (1,2,3))  #Fales

【六】支持遍历

for i in (1,2,3,4):print(i)
#1
#2
#3
#4
for + range ---> 索引取值
range : 顾头不顾尾for i in range(len(name)):print(name[i])  #由于len(name)是5 然后range取值是从0开始 0-4正好是dream
#d
#r
#e
#a
#m       

【七】元组拼接

 print('silence' + '666') #silence666
# 两个列表进行 + 运算,得到了一个两个列表元素拼到一起的新列表print([1, 2, 3] + [4, 5, 6]) #[1,2,3,4,5,6]
# 两个元组进行 + 运算,得到了一个两个元组元素拼到一起的新元组
print((1, 2, 3) + (4, 5, 6)) #(1,2,3,4,5,6)

【八】* 号运算

print((1, 2, 3) * 6)  #(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
# 如果元组 用 * 运算得到的是一个新的元组
#如果列表用 * 运算得到的是一个新的列表

2 布尔类型的内置方法

# 布尔类型的内置方法
# 强制类型转换# 强制将其他类型转换为布尔类型
print(bool(0))  #False
print(bool(1))  #True
print(bool(2))  #True# 在Python中为假
# 布尔值False
# 数字 0
# 空值

3 集合类型的内置方法

【一】集合的定义

{} 并且每一个元素是单独的,区分于字典,因为字典是键值对

集合内部的元素不能放可变数据类型

【二】集合的特性

无序性,去重性

无序性
#相对于其他类型来说
#数字类型的hash值是死的
print({1, 2, 3, 4, 5, 6, 999, 55, 33, 77, 88, 44})
#{1, 2, 3, 4, 5, 6, 999, 33, 44, 77, 55, 88}print({1, 2, 3, 4, 5, 6, 999, 55, 'd', 77, 'ee', 44}) #数字不动 字符串到处乱跑
#{1, 2, 3, 4, 5, 6, 999, 'd', 44, 77, 'ee', 55}
#{1, 2, 3, 4, 5, 6, 999, 44, 77, 55, 'ee', 'd'}去重性
# 在一个集合内不会出现重复的元素

【三】其他类型的数据强转

强转的时候会沿用集合的特性:无序且去重

name = 'silence'
print(set(name))  #{'n', 's', 'i', 'e', 'c', 'l'}#{'n', 'e', 'i', 'c', 's', 'l'}
print(set({'username': "silence", 'password': "<PASSWORD>"}))
#{'password', 'username'} 还是拿的键值

【四】集合操作

【1】添加元素

# (1)add方法只能接收一个元素不能查过两个
num_set = {1, 2, 3}
num_set.add(999)
print(num_set)    #{1, 2, 3, 999}
num_set.add(999,66666)
print(num_set)      #Errornum_set = {1, 2, 3}    
num_set.update([1, 2, 3, 4])  #{1, 2, 3, 4}
num_set.update((4, 5, 6))   {1, 2, 3, 4, 5, 6}
print(num_set)num_set = {1, 2, 3}
num_set.update({'username': "silence"})
print(num_set)   #{1, 2, 3, 'username'}还是获取的键值#了解就行
# 把注册过的用户名全部扔到集合中    
# 利用集合的去重性判断当前用户是否注册过
username_tuple = {'slience', 'opp'}
username = input(':>>>')username_tuple.add(username)

【2】删除元素

删除已经存在的值

num_set = {1, 2, 3,999}
num_set.remove(999)
print(num_set)    #{1, 2, 3}
# remove 删除集合中不存在的值的时候会报错
num_set.remove(999)   #Error# discard 删除不存在的元素不会报错
num_set.discard(999)  #不会报错,并且还有返回值{1, 2, 3}
# pop 在其他数据类型可以指定参数,但是在集合中不能指定参数
num_set.pop()
print(num_set)

【五】集合的运算

【1】交并差补

交集 : 两个集合中共有的元素

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出: {3}

并集:将两个集合中的元素合并到一起

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set)  # 输出: {1, 2, 3, 4, 5}

差集:你有但是我没有的数据

set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set)  # 输出: {1, 2}

补集:在整体内除去自己有的

A = {1, 2, 3, 4, 5}
B = {3, 4}
# 使用差集操作获取补集
A_complement = A - B
print(A_complement)

集合是否相等

set1 = {1, 2, 3, 4, 5}
set2 = {2, 4}# 判断两个集合是否相等
is_equal = set1 == set2
print(is_equal)
# 输出: False

集合列表转换

l_old = ['a', 'b', 1, 'a', 'a']
s = set(l_old)  # 将列表转成了集合
print(s)
# {'b', 'a', 1}l_new = list(s)  # 再将集合转回列表
print(l_new)  # 去除了重复,但是打乱了顺序
# ['b', 'a', 1]# 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
l_second = [{'name': 'lili', 'age': 18, 'sex': 'male'},{'name': 'jack', 'age': 73, 'sex': 'male'},{'name': 'tom', 'age': 20, 'sex': 'female'},{'name': 'lili', 'age': 18, 'sex': 'male'},{'name': 'lili', 'age': 18, 'sex': 'male'},
]new_l_second = []for dic in l_second:if dic not in new_l_second:new_l_second.append(dic)print(new_l_second)
# 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
'''
[
{'name': 'lili', 'age': 18, 'sex': 'male'}, 
{'name': 'jack', 'age': 73, 'sex': 'male'}, 
{'name': 'tom', 'age': 20, 'sex': 'female'}
]
'''

【六】计算长度 len()

计算集合长度set1 = {1, 2, 3, 4, 5}
length = len('uset1')
print(length)   # 5

【七】支持遍历

my_set = {1, 2, 3, 'a', 'b'}# 遍历集合for item in my_set:print(item)
#1
#2
#3
#a
#b

【八】支持成员运算

[1] in

my_set = {1, 2, 3, 'a', 'b'}
is_in_set = 'a' in my_set
print(is_in_set)
# 输出: True

[2] not in

my_set = {1, 2, 3, 'a', 'b'}
is_not_in_set = 6 not in my_set
print(is_not_in_set)
# 输出: True

4 数据类型总结

【一】按存值个数区分

  • 只能存一个值:可称为标量/原子类型
    • 数字类型,字符串
  • 可以存放多个值:可称为容器类型
    • 列表,元组,字典

【2】按照访问方式区分

  • 直接访问:只能通过变量名访问整个值
    • 数字类型
  • 顺序访问:可以通过索引访问指定的值,索引代表顺序,又称为序列类型
    • 字符串,列表,元组
  • key访问:可以用key访问指定的值,又称为映射类型
    • 字典

【3】按可变不可变区分

  • 可变类型
    • 列表,字典
  • 不可变类型
    • 数字,字符串,元组

【4】可迭代与不可迭代

  • 可迭代就是可以被for遍历
    • 元组,集合 、列表,字典,字符串
  • 不可迭代
    • 数字、布尔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/88818448.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

软件测评师(中级)|画控制流图手把手教程

控制流图画法分解,一文教会画软件测评师中级中的各种流程图1.控制流图概念 控制流图(Control Flow Graph, CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形…

flutter随笔

dart语法 list // 创建指定长度list List.generate(6, (index) => CircleButton(index: index));基础 视图结构StatelessWidget与StatefulWidget区别StatelessWidget: 无状态的widgets是不可变的,这意味着它们的属性不能改变,所有的值都是final StatefulWidget: 有状态的wid…

书生浦语大模型趣味Demo课程笔记

第二节 书生浦语大模型趣味Demo实践 环境准备 浦语大模型的开发机器支持了cuda11.7的基础环境和一些自动迁移conda配置脚本迁移conda环境命令: studio-conda -o internlm-base -t demo 如果自己安装软件环境:conda create -n demo python==3.10 -y conda activate demo conda…

服务器windows server2008突然不能访问某些网站、远程桌面打不开

下载这个软件,并选择BestPractices,再Apply z直接Apply,没有用 IIS Crypto 是一个免费工具,使管理员能够在 Windows Server 2008、2012、2016、2019 和 2022 上启用或禁用协议、密码、哈希和密钥交换算法。它还允许您重新排序 IIS 提供的 SSL/TLS 密码套件、更改高级设置、…

[转帖]nginx(九)location指令

一 location location最佳实践参考 深入理解location匹配规则 一文理清nginx中的location配置 location讲解最好的博客 URL是如何关联location配置块的 ① 第一部分 location指令的作用: 是根据用户请求的URI来匹配location,匹配success则执行对应的configure配置块 …

易语言数组 ,索引从 1 开始。

如图:本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18111839