• 第十四课、语句及数据结构应用


    一、最基本的迭代 
    
    # 字符串 
    a = 'asdfD4dfdDFSA34'
    for i in a:
        print i 
    
    # 列表
    b = [1,2,3,4,5,6]
    for i in b:
        print i 
    
    # 元组
    c = ('a','b','c','d')
    for i in c:
        print i 
    
    
    二、如何迭代字典
    
    # 字典,在字典中键是唯一的
    d = {'key1':'value1','key2':'value2','key3':'value3', 'key2':'value21'}
    print d 
    
    for i in d.keys():
        print i 
    
    print d.keys()
    print d.items()
    
    for x, y in d.items():
        print x, y 
    
    
    三、如何为字典排序 (对键进行排序)
    
    d = {'key1':'value1','key2':'value2','key3':'value3', 'key2':'value21'}
    
    key_list = d.keys()
    key_list.sort()
    
    for x in key_list:
        print x, d[x]
    
    
    
    四、字典根据键值查找
    
    
    '''
    需求:根据字典的值得到字典的键
    1. 字典索引的是键,而不是值 -> 迭代,穷举
    2. 字典具有唯一键,但值不一定是唯一的
    3. 一个直可能对应n(n>=1)个键 
    '''
    a = {'a':'haha', 'b':'xixi', 'c':'xiaxia', 'd':'haha', 'e':'haha'}
    search_str = 'haha'
    key_list = []
    for x,y in a.items():
        if y == search_str:
            key_list.append(x)
    print key_list
    
    
    # 下节课用函数进行封装 
    
    
    
    五、sorted排序方法再议
    
    a = 'sFdk3ksTV4dsd'
    print sorted(a)
    
    r: ['3', '4', 'F', 'T', 'V', 'd', 'd', 'd', 'k', 'k', 's', 's', 's']
    
    
    a = 'sFdk3ksTV4dsd'
    b = ''.join([x for x in a if not x.isdigit()])
    
    结果:'sFdkkDsTfVdstd'
    
    import string
    print sorted(b, key = string.upper)
    
    
    a = 'sFdkkDsTfVdstd'
    >>> sorted([string.upper(x) for x in a])
    ['D', 'D', 'D', 'D', 'F', 'F', 'K', 'K', 'S', 'S', 'S', 'T', 'T', 'V']
    >>> sorted(a,key=string.upper)
    ['d', 'D', 'd', 'd', 'F', 'f', 'k', 'k', 's', 's', 's', 'T', 't', 'V']
    
    '''
    key = string.upper 可以理解为 用string.upper这个方法,去执行列表中的每个数据. 也就是说
    
    '''
    
    六、好玩的translate与maketrans
    
    
    a = 'i am lilei'
    a.replace('lilei','hanmeimei')
    
    
    import string 
    
    
    # 替换和被替换的必须是相同长度,否则会报错, 将1 翻译成 a, 将 2 翻译成 b, 将 3 翻译成 c 
    s = string.maketrans('123','abc') 
    
    
    a = '12323423233421222'
    print a.translate(s)
    
    结果 abcbc4bcbcc4babbb
    
    分析:翻译表和replace 一个是逐个替换,还有一个是整块替换
    
    
    替换之前可以先删除指定的字符  
    
    
    print a.translate(s,'1')
    
    结果:'bcbc4bcbcc4bbbb'
    
    
    
    七、一个新的语句, with  
    
    
    f = open('d:/ttt.txt','w')
    f.write('i am lilei')
    f.close()
    
    
    with open('d:/ttt.txt','a') as g:
        g.write('
     xixixxxxi')
    
    
    with 打开文件后写入数据后无需关闭操作, 非常有用. 
  • 相关阅读:
    GotoAndPlay 图论
    P1965 转圈游戏  快速幂
    双栈排序 图论
    威尔逊定理 数学
    n!mod p 的求法 数学
    P3195 [HNOI2008]玩具装箱TOY DP+优化
    loj6485. LJJ 学二项式定理
    loj6539. 奇妙数论题
    loj535. 「LibreOJ Round #6」花火
    loj534. 「LibreOJ Round #6」花团
  • 原文地址:https://www.cnblogs.com/huiming/p/5560866.html
Copyright © 2020-2023  润新知