zoukankan      html  css  js  c++  java
  • python学习笔记4

    Chat 6 set

    a = set([1, 2, 3, 1])
    a = {1, 2, 3, 4}
    b = {3, 4, 5, 6}
    # 创建set
    a.union(b)
    a | b 
    a.intersection(b)
    a & b
    a.difference(b)
    a - b
    a.symmetric_difference(b)
    a ^ b
    a = {1, 2, 3}
    b = {1, 2}
    b.issubset(a)
    b <= a
    a.issuperset(b)
    a >= b
    # 这里其实还有 > < 符号可以使用
    

    相对于list使用append来添加,set使用add来添加,update来更新整个文件

    t = {1, 2, 3}
    t.add(5)
    t.update([5, 6, 7])
    

    使用remove来删除某一个元素,pop来删除最后一个元素

    t.remove(1)
    t.remove(10)
    # 如果不存在这个的话,会报错
    t.discard(10)
    # 相比 t.remove(), t.discard()的话不会报错
    t.pop()
    

    下面介绍下frozenset, 顾名思义就是不变的集合

    s = frozenset([1, 2, 3, 'a', 1])
    

    不变集合的一个主要应用是来作为字典的健

    flight_distance = {}
    city_pair = frozenset(['Los Angeles', 'New York'])
    flight_distance[city_pair] = 2498
    flight_distance[frozenset(['Austin', 'Los Angeles'])] = 1233
    flight_distance[frozenset(['Austin', 'New York'])] = 1515
    flight_distance
    

    由于集合不分顺序,所以不同顺序不会影响查阅结果:

    flight_distance[frozenset(['New York','Austin'])]
    flight_distance[frozenset(['Austin','New York'])]
    

    这个也是tuple的区别

    有些童鞋认为tuple也是不变的,而我为什么需要使用frozenset,因为set不分顺序,而tuple是分顺序的

    Chat 7 control section

    python的控制语句都以:结尾

    python的tab键代表了你是否属于这个控制语句当中

    if 语句

    x = -0.5
    if x > 0:
        print "Hey!"
        print "x is positive"
        print "This is still part of the block"
    print "This isn't part of the block, and will always print."
    
    year = 1900
    if year % 400 == 0:
        print "This is a leap year!"
    # 两个条件都满足才执行
    elif year % 4 == 0 and year % 100 != 0:
        print "This is a leap year!"
    else:
        print "This is not a leap year."
    

    while  语句

    plays = set(['Hamlet', 'Macbeth', 'King Lear'])
    while plays:
        play = plays.pop()
        print 'Perform', play
    

    for 语句

    plays = set(['Hamlet', 'Macbeth', 'King Lear'])
    for play in plays:
        print 'Perform', play
    
    total = 0
    for i in xrange(100000):
        total += i
    print total
    
    # range(x)会在做之前生成一个临时表,这样对于效率,内存是不好的
    

    continue和break就不介绍了吧

    下面说下else

    if 一样, whilefor 循环后面也可以跟着 else 语句,不过要和break一起连用。

    • 当循环正常结束时,循环条件不满足, else 被执行;
    • 当循环被 break 结束时,循环条件仍然满足, else 不执行。

    如下的例子

    values = [11, 12, 13, 100]
    for x in values:
        if x <= 10:
            print 'Found:', x
            break
    else:
        print 'All values greater than 10'
    
  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8904237.html
Copyright © 2011-2022 走看看