zoukankan      html  css  js  c++  java
  • 2018年11月27日 分类与集合

      

    九九乘法表

    方案1:倒三角式

    for i in range(1,10):
        for j in range(i,10):
            print(i,"*",j,"=",i*j,"	",end="")
        print("")

    方案2:正三角式

    for i in range(1,10):
        for j in range(1,i+1):
            print(i,"*",j,"=",i*j,"	",end="")
        print("")

    语法

    以下是 print() 方法的语法:

    print(*objects, sep=' ', end='
    ', file=sys.stdout)

    参数

    • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
    • sep -- 用来间隔多个对象,默认值是一个空格。
    • end -- 用来设定以什么结尾。默认值是换行符 ,我们可以换成其他字符串。
    • 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,'
    ',x2,'
    ',"交集",y,'
    ',y2,'
    ',"并集",z,'
    ',z2,'
    ','交叉补集',w,'
    ',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对比:
    ",s_a,'
    ',s_a2)
    
    
    s_a=frozenset("sxj") #定义不可变集合

    如何简单去重复
    a=["sxj","sxj","abc",1]
    s=set(a)#简单去重复
    print(s)
    a=list(s)#重新转换为列表
    print(a)

      注意无法恢复原来的顺序




  • 相关阅读:
    排列组合例题分析
    短信微服务+springboot+redis整合,动态获取短信验证码
    mac版idea 2018.3.5版 永久激活教程
    windows版idea 2018.3.5版 永久激活教程
    深入理解 Java 垃圾回收机制
    如何写代码 —— 编程内功心法
    并发与并行的区别
    Lua语法要点
    android 手机上运行图像算法
    OPENCL 错误码
  • 原文地址:https://www.cnblogs.com/python1988/p/10029005.html
Copyright © 2011-2022 走看看