首页 > 其他分享 >元组、布尔、集合的内置方法

元组、布尔、集合的内置方法

时间:2024-05-14 09:00:16浏览次数:23  
标签:123 内置 num 元组 集合 set print 布尔

元组的内置方法

【一】元组的定义

() 在元组的内部,只有一个元素的时候要加逗号 ','

【二】类型强转

转换其他数据类型为元组,整数类型布尔类型不可以强转

print(tuple([1,2,3]))
# (1, 2, 3)
print(tuple('qwer'))
# ('q', 'w', 'e', 'r')
print(tuple({1,2,3,3}))
# (1, 2, 3)
print(tuple({'1':'2'}))
# ('1',)

【三】索引取值

num_tuple= (1,2,3,4,5,6,7)
print(num_tuple[0])
# 1
num_tuple[0] = 990
报错  不支持根据索引修改指定索引的值

切片 顾头不顾尾
print(num_tuple[0:5])
# (1, 2, 3, 4, 5)

【四】计算元素个数

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

【五】成员运算

print(4 in (1,2,3))
# False

【六】遍历循环

for i in (1,2,3,4,5)
	print(i)
1
2
3
4
5

for + range 索引取值  顾头不顾尾
for i in range(1,7):
	print(i)
1
2
3
4
5
6

【七】元组拼接

字符串
print('qwer' + '12')
# qwer12

列表  加法运算,得到一个两个列表元素拼到一起的新列表
print([1,23,3] + [1,23,4])
# [1, 23, 3, 1, 23, 4]

元组 得到一个两个元组元素拼到一起的新元组
print((1,2,3) + (1,2,33))
# (1, 2, 3, 1, 2, 33)

【八】*号运算

得到一个新元组
print((1,2,3) * 6)
# (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)

布尔类型

内置方法

强制类型转换

print(bool(0))
print(bool(1))
print(bool(2))
False
True
True

集合

【一】集合定义

{}每一个元素都是单独的

区分于字典,因为字典是键值对

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

【二】特性

无序性

数字类型的hash值是死的,字符串的hash值会变
都输出三次看输出内容
print({1,2,3,4,3242,13,123})
# {1, 2, 3, 4, 3242, 123, 13}
# {1, 2, 3, 4, 3242, 123, 13}
# {1, 2, 3, 4, 3242, 123, 13}

print({1,2,3,4,'a',3242,'adads',13,123})
# {'a', 1, 2, 3, 4, 3242, 'adads', 13, 123}
# {1, 2, 3, 4, 'adads', 3242, 'a', 13, 123}
# {1, 2, 3, 4, 3242, 13, 'adads', 'a', 123}
当集合内放了字符串,输出时字符串位置不固定

去重性

在一个集合内不会出现重复的元素

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

强转时会沿用集合的特性,无序、去重

# 字符串
name = 'qwre'
print(set(name))
# {'w', 'q', 'e', 'r'}
# {'r', 'w', 'q', 'e'}
每次输出都不一样

# 字典  只转换键,且无序
user = {'username' : 'qwer' , 'password' : 'asdawd'}
print(set(user))
# {'password', 'username'}
#转换值 无序
print(set(user.value))
# {'qwer', 'asdawd'}
# {'asdawd', 'qwer'}

【四】集合操作

【1】添加元素

# add方法 只能接收一个元素
num_set = {1,2,3}
num_set.add(1234)
print(num_set)
# {1, 2, 3, 1234}
num_set.add(1234,23)  #输出会报错
# 把注册过的用户全部仍到集合中
# 利用集合的去重性判断当前用户是否注册过

username_tuple = {'qew','qweasd'}
username = input(>>>>>>)
username_tuple.add(username)

【2】删除元素

# remove方法 删除集合中不存在的值时会报错
num_set.remove(3)
print(num_set)
# {1, 2, 1234}
num_set.remove(3)
删除两次报错

# discard方法  删除不存在的元素不会报错
num_set.discard(3)
# None 不报错

#pop 在其他数据类型中可以指定参数,但是在集合中不能指定  会弹出最后一个参数(谁倒霉谁在后)
num_set.pop()
print(num_set.pop())
print(num_set)
# 1
# {2, 1234}  1被随机排到了最后,所以1被弹出了

【五】集合的运算

交集:两集合共有的元素

并集:两个集合去重后的所有元素

补集:大集合A 包含小集合B

​ A中B没有的所有元素叫做B对于A的补集

差集:你有我没有的

判断两集合是否相等

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()
# 【七】支持遍历
# 【八】支持成员运算

【六】计算长度

num_set = {1,2,3}
print(len(num_set))
# 3

【七】支持遍历

去重后输出
num_set = {1,2,3,123,3,4,1,}
for i in num_set:
    print(i)
1
2
3
4
123

【八】支持成员运算

num_set = {1,2,3,123,3,4,1,}
if 2 in num_set:
    print('yes')
# yes

数据类型总结

# 【一】按存储值的个数进行划分
# 存一个: 数字、字符串
# 很多个:列表、元祖、字典

# 【二】按照访问方式分
# 【1】直接访问:数字 布尔
# 【2】按照索引:列表、集合、元组
# 【3】按照关键字:字典 映射类型

# 【三】按照可变和不可变区分
# 【1】不可变
# 字符串、数字、布尔、元组,集合
# 【2】可变
# 列表,字典,

# 【四】可迭代与不可迭代
# 【1】可迭代就是可以被for遍历 元组,集合 、列表,字典,字符串、
# 【2】不可迭代 数字、布尔

区分可变不可变的依据:更改元素过后查看他的ID看是否变化,

发生变化则为不可变类型,反之为可变数据类型。

标签:123,内置,num,元组,集合,set,print,布尔
From: https://www.cnblogs.com/yi416/p/18190494

相关文章

  • 字符串、列表、字典内置方法
    字符串内置方法【一】字符串的查找字符串内部的字符默认从左向右找,并返回当前字符在串中的索引坐标【1】find方法name='qwerooehjkl'print(name.find('e'))默认只找一次,找到就不找了#2第二个e不找了可以指定寻找的区间,参数不带''引号从第三个到最后一个pr......
  • 夜莺监控(Nightingale)上线内置指标功能
    Prometheus生态里如果要查询数据,需要编写promql,对于普通用户来说,门槛有点高。通常有两种解法,一个是通过AI的手段做翻译,你用大白话跟AI提出你的诉求,让AI帮你写promql,另一种是平台里内置现成的promql,覆盖常用场景开箱即用。夜莺监控(Nightingale)最近上线了内置指标功能,可以......
  • 蓝桥杯-递增三元组(三种解法,二分, 双指针, 前缀和)
    给定三个整数数组A=[A1,A2,…AN],B=[B1,B2,…BN],C=[C1,C2,…CN],请你统计有多少个三元组(i,j,k)满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数N。第二行包含N个整数A1,A2,…AN。第三行包含N个整数B1,B2,…BN。第四行包含N个整数C1,C2,…CN。输出格......
  • Java开发利器Commons Lang之元组Tuple
    标准Java库没有提供足够的方法来操作其核心类,ApacheCommonsLang提供了这些额外的方法。ApacheCommonsLang为java提供了大量的帮助工具。langAPI,特别是String操作方法、基本数值方法、对象反射、并发、创建和序列化以及System属性。此外,它还包含对java.util.Date的基本增......
  • Go语言:内置函数
    什么是Go语言的内置函数呢?顾名思义,就是Go语言为了方便我们编程,提供了一些不需要导包就可以直接使用的函数,就叫内置函数了。常用的内置函数有哪些呢?1、len函数统计字符串的长度或者数组的长度等,统计字符串的长度时,是按照字节来统计的(Go语言中,一个汉字占3个字节)。2、new函数分......
  • Python进阶之内置方法
    【一】内置方法引入__init__ :初始化对象时触发__del__ :删除类时触发__new__ :构造类时触发__str__ :str函数或者print函数触发__repr__ :repr或者交互式解释器触发__doc__ :打印类内的注释内容__enter__ :打开文档触发__exit__ :关闭文档触发__getattr__:访问不存在的属......
  • for 、range关键字、内置方法
    【一】while循环补充continue:结束当前当次循环break:结束整个循环【二】for循环遍历可迭代类型(能索引取值的也属于可迭代类型)字符串name="dream"forainname:print(a)dream列表name=[1,2,3,4]forainname:print(a)1234元组name......
  • Python高级之常用的内置函数
    【一】什么是内置函数内置函数就是Python给你提供的,拿来直接用的函数目前共有68个内置函数Built-inFunctionsAabs()aiter()all()any()anext()ascii()Bbin()bool()breakpoint()bytearray()bytes()Ccallable()chr()classmethod()compile()complex()Ddelatt......
  • 解决SpringBoot内置tomcat出现error:An incompatible version [1.2.16] of the Apache
    问题描述在运行SpringBoot时出现一个error2024-05-08T20:52:06.512+08:00ERROR20752---[springboot3-003-demo][main]o.a.catalina.core.AprLifecycleListener:Anincompatibleversion[1.2.16]oftheApacheTomcatNativelibraryisinstalled,wh......
  • Python中级之数据类型的内置方法1(数字类型和字符串)
    【一】数字类型【1】整数类型(int)(1)定义直接用整数定义,整数类型的值不能修改num=6(2)内置方法int.bit_length()#返回整数的二进制表示中最高位的位数,不包括符号和前导零。a=10b=a.bit_length()print(b)#输出4int.to_bytes(length,byteorder,signed)#......