2018年11月27日 分类与集合
九九乘法表
方案1:倒三角式
for i in range(1,10): for j in range(i,10): print(i,"*",j,"=",i*j,"\t",end="") print("")
方案2:正三角式
for i in range(1,10): for j in range(1,i+1): print(i,"*",j,"=",i*j,"\t",end="") print("")
语法
以下是 print() 方法的语法:
print(*objects, sep=' ', end='\n', file=sys.stdout)
参数
- objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep -- 用来间隔多个对象,默认值是一个空格。
- end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
- file -- 要写入的文件对象。
id()
name="sxj" print(id(name))#id函数查看内存地址
内容在变,id不变,则称为可变类型:列表,字典
内容在变,id变化 ,则称为不可变类型:字符串,数字,元祖
顺序访问:字符串,列表,元祖
直接访问: 数字
映射访问:字典
容器类型:列表,元祖,字典
原子类型:数字,字符串
集合:
1:不同元素组成,2:无序,3:不可变类型(字符串,数字,元祖)
s={"sxj",123,("abc",321)}
定义集合可以用set()函数
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
语法
set 语法:
class set([iterable])
s="hello" a=set(s) #定义集合 b=set(["abc","sxj",123])#定义集合2 a.add("add添加元素的方法") print(a) b.clear()#清空集合 print(b) c=a.copy() a.pop()#随机删除元素 print(a) a.remove("h")#指定删除元素,如果不存在会报错 a.discard("sb")#指定删除,如果不存在不会报错
x & y # 交集
x | y # 并集
x - y # 差集
x ^ y# 交叉补集
a=["a","b",'c','d',1,2,3,4,5] b=["d",1,2,5,2,"c",'a','f'] s_a=set(a) s_b=set(b) x=s_a-s_b #差集 x2=s_a.difference(s_b) y=s_a&s_b #交集 y2=s_a.intersection(s_b)#交集 z=s_a|s_b #并集 z2=s_a.union(s_b)#并集 w=s_a^s_b#交叉补集 w2=s_a.symmetric_difference(s_b) print("差集",x,'\n',x2,'\n',"交集",y,'\n',y2,'\n',"并集",z,'\n',z2,'\n','交叉补集',w,'\n',w2)
a=["a","b",'c','d',1,2,3,4,5] b=["d",1,2,5,2,"c",'a','f'] s_a=set(a) s_b=set(b) s_a=s_a-s_b s_a.difference_update(s_b)#求差集并更新,同上面等式 s_a=s_a&s_b s_a.intersection_update(s_b)#求交集并更新,同上面等式 s_a=s_a^s_b s_a.symmetric_difference_update(s_b)#求交叉补集并更新同上面等式 s_a.isdisjoint(s_b)#返回bool,判断是否有交集 s_a.issubset(s_b)#返回bool,判定sa是否为sb的子集,同sa<=sb s_a.issuperset(s_b)#返回bool,判定sa是否为sb的父集,同sa>=sb s_a=s_a|s_b #同下面的update,求并集并赋值给sa s_a.update(s_b)#同上 s_b.update([1,2,3,4,5])#update 能添加更新多个值,add只能增加一个值
add 与 update 用法的差异
a=["a","b",'c','d',1,2,3,4,5] b=["d",1,2,5,2,"c",'a','f'] s_a=set(a) s_a2=s_a.copy() s_b=set(b) s_a.add("sxj") s_a2.update("sxj") print("add与update对比:\n",s_a,'\n',s_a2)
s_a=frozenset("sxj") #定义不可变集合
如何简单去重复
a=["sxj","sxj","abc",1] s=set(a)#简单去重复 print(s) a=list(s)#重新转换为列表 print(a)
注意无法恢复原来的顺序