copy;交集、并集、差集

变量:
 
a=1;b=2;c=1——发现变量a和c的内存地址竟然相同,这就是Python不需要定义变量的秘密:内存中根本就没有a、b、c,自然就不必定义啦。
例如,a,b=b,a的真相是a,b=(2,1),等号后的都是存在内存里的,但是b和a并没在内存(=后若是str、int等Python类型比如'a'和'b',那才是真的放在内存里了),它俩相当于此刻的内存中的数值2和1的行参。
****************************************分割线****************************************
对于可变类型list和range等,切片copy=deepcopy>copy>等号赋值:
 
import copy
a=range(0,100)
b=a[:]
c=copy.copy(a)
d=copy.deepcopy(a)
 
print(type(a))
print(id(a),id(b),id(c),id(d))
****************************************分割线****************************************
str对象在元组、列表、集合中的变身:

s='qwert'
jh=set();jh.update(s)
 
print(tuple(s),list(s),set(s),jh,sep='\n')
 
jh.add(s)
print((s,),[s,],jh,sep='\n')
****************************************分割线****************************************
两个list的交集、并集、差集:
 
a = [0,1,2,3]
b = [2,3,4,5]
intersection=list(set(a).intersection(set(b)))  #交集
union=list(set(a).union(set(b)))    #并集
dif=list(set(a) ^ set(b))   #差集
only = list(set(a).difference(set(b)))   #a有b无
only1=[x for x in a if x not in b];only2=[x for x in a if not x in b]
 
print(intersection,union,dif,only,only1,only2)
**********************分割线**********************
应用:猜数字游戏の永远猜不对:
 
import random
 
t=set()
for i in range(9):
    if  i<8:
        x = input('请输入你猜的数字,在0~9之间:')
        t.add(x)    #if x.isdecimal()
print(t)
r=random.choice(tuple(set(map(str,range(9))).difference(t)))
print('真实的数字其实是:%s' %r)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值