python set函数将object对象转化为集合_Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数...

一、上节课的重点回顾:

1、类名加括号其实就是执行类的__init__方法:

2、int

a.创建方式

n1 = 123  #根据int类创建了一个对象

n2 = int(123)  #根据int类创建一个对象,类的实例化就是对象

b.int内部优化

1、n1和n2的内存地址相同

n1 = 123

n2 = n1

2、按理说n1和n2的内存地址应该不同,这是由于python的内部机制的原因,

在-5~257以内的数,按2的方式写,都是指向同一个内存

n1 = 123

n2 = 123

除此之外的数,n1和n2的内存地址是不同的,但是python源码可以改取值范围

n1 = 123123

n2 = 123123

3、id查看对象的内存地址

n1 = 123

i1 = id(n1)

name = "李露"

for i in name:

print(i) #循环打印每个汉字而不是字节

bytes_list = bytes(i, encoding='utf-8') #将汉字转成字节,编码是utf-8

print(bytes_list)

for b in bytes_list:

hex 可以 十进制转16进制 二进制转16进制 结果都是字符串>>>hex(0b10)'0x2'

>>> hex(10)'0xa'bin 可以十进制转2进制 16进制转2进制 结果都是字符串>>> bin(10)'0b1010'

>>> bin(0x2)'0b10’

int 可以16进制转换十进制 2进制转换十进制>>> int(0xe)14

>>>int(0b100)4

python进制转换

fromkeys(seq,value=None) 解释:

默认不写value的话,所有的值为None

n = dict.fromkeys(['k1', 'k2'], []) #默认逗号后面不给的话,key对应的value都是None

n['k1'].append(2) #我们修改逗号后面的空列表元素 打印 所有key的value也会修改

print(n)

n['k1'] = 3 # 而单独修改key的value的话,只有 这个key的value改了,而其他的key对应的value都不变

print(n)

n = dict.fromkeys() #默认逗号后面不给的话,key对应的value都是None

print(n)

二、集合set:集合是一个无序且不重复的元素集合

s1={1,2,3,1} #定义一个set s1 如果s1={}为空则默认定义一个字典

s2=set([2,5,6]) #定义一个set s2

print(s1) #s1={1,2,3} 自动去除重复的元素

s1.add(5) #s1={1,2,3,5} 添加一个元素

print(s1)

s3=s1.difference(s2) #返回一个s1中存在而不存在于s2的字典s3,s3={1,3},而s1并没有改变

print(s3)

s1.difference_update(s2) #s1跟新成上面的s3 s1={1,3}

s1.discard(1) #删除元素1,不存在的话不报错 s1={3}

print(s1)

s1.remove(3) #删除元素3,不存在的话报错 s1={}

print(s1)

s1.update([11,2,3]) #跟新s1中的元素,其实是添加 s1={11,2,3}

print(s1)

k=s1.pop() #删除一个元素,并将删除的元素返回给一个变量,无序的,所以并不知道删除谁

s1={1,2,3,4}          #这里重新定义了集合s1,s2

s2={3,4,5,6}

r1=s1.intersection(s2) #取交集,并将结果返回给一个新的集合 r1={3,4}

print(r1)

print(s1)

s1.intersection_update(s2) #取交集,并将s1更新为取交集后的结果 s1={3,4}

print(s1)

k1=s1.issubset(s2) #s1是否是s2的的子序列是的话返回True,否则False 这里k1=true

print(k1)

k2=s1.issuperset(s2) #s1是否是s2的父序列 k2=False

k3=s2.isdisjoint(s1) #s1,s2,是否有交集,有的话返回False,没有的话返回True

print(k3)

s1.update([1,2]) #s1={1,2,3,4}

r3=s1.union(s2) #取并集将结果返回给r3 r3={1,2,3,4,5,6}

print(r3)

r2=s1.symmetric_difference(s2) #r2=s1并s2-s1交s2 r2={1,2,5,6}

print(r2)

s1.symmetric_difference_update(s2) #s1更新为 s1并s2 - s1交s2 s1={1,2,5,6}

print(s1)

classset(object):"""set() -> new empty set object

set(iterable) -> new set object

Build an unordered collection of unique elements."""

def add(self, *args, **kwargs): #real signature unknown

"""Add an element to a set,添加元素

This has no effect if the element is already present."""

pass

def clear(self, *args, **kwargs): #real signature unknown

"""Remove all elements from this set. 清楚内容"""

pass

def copy(self, *args, **kwargs): #real signature unknown

"""Return a shallow copy of a set. 浅拷贝"""

pass

def difference(self, *args, **kwargs): #real signature unknown

"""Return the difference of two or more sets as a new set. A中存在,B中不存在

(i.e. all elements that are in this set but not the others.)"""

pass

def difference_update(self, *args, **kwargs): #real signature unknown

"""Remove all elements of another set from this set. 从当前集合中删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值