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)

  注意无法恢复原来的顺序




posted @ 2018-11-27 21:03  小圣庄  阅读(132)  评论(0编辑  收藏  举报