zoukankan      html  css  js  c++  java
  • python备用

    Python特殊语法:filter、map、reduce、lambda [转]

    http://www.cnblogs.com/longdouhzt/archive/2012/05/19/2508844.html

    map函数用法

     1 ls = [1,2,3]
     2 rs = map(str, ls)
     3  
     4 #打印结果 ['1', '2', '3']
     5 lt = [1, 2, 3, 4, 5, 6]
     6 def add(num):
     7     return num + 1
     8  
     9 rs = map(add, lt)
    10 print rs #[2,3,4,5,6,7]
    View Code

    **************************

    print sum(map(int, '123'))
    输出:

    6

    为这个数所有位数字之和

    **************************

    random类

      1 random.random
      2 
      3 random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
      4 random.uniform
      5 
      6   random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
      7 
      8     print random.uniform(10, 20)  
      9     print random.uniform(20, 10)  
     10     #---- 结果(不同机器上的结果不一样)  
     11     #18.7356606526  
     12     #12.5798298022  
     13 
     14 print random.uniform(10, 20) print random.uniform(20, 10) #---- 结果(不同机器上的结果不一样) #18.7356606526 #12.5798298022
     15 random.randint
     16 
     17   random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
     18 
     19     print random.randint(12, 20)  #生成的随机数n: 12 <= n <= 20  
     20     print random.randint(20, 20)  #结果永远是20  
     21     #print random.randint(20, 10)  #该语句是错误的。下限必须小于上限。  
     22 
     23 print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20 print random.randint(20, 20) #结果永远是20 #print random.randint(20, 10) #该语句是错误的。下限必须小于上限。
     24 random.randrange
     25 
     26   random.randrange的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
     27 random.choice
     28 
     29   random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:
     30 
     31     print random.choice("学习Python")   
     32     print random.choice(["JGood", "is", "a", "handsome", "boy"])  
     33     print random.choice(("Tuple", "List", "Dict"))  
     34 
     35 print random.choice("学习Python") print random.choice(["JGood", "is", "a", "handsome", "boy"]) print random.choice(("Tuple", "List", "Dict"))
     36 random.shuffle
     37 
     38   random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:
     39 
     40     p = ["Python", "is", "powerful", "simple", "and so on..."]  
     41     random.shuffle(p)  
     42     print p  
     43     #---- 结果(不同机器上的结果可能不一样。)  
     44     #['powerful', 'simple', 'is', 'Python', 'and so on...']  
     45 
     46 p = ["Python", "is", "powerful", "simple", "and so on..."] random.shuffle(p) print p #---- 结果(不同机器上的结果可能不一样。) #['powerful', 'simple', 'is', 'Python', 'and so on...']
     47 random.sample
     48 
     49   random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
     50 
     51     list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
     52     slice = random.sample(list, 5)  #从list中随机获取5个元素,作为一个片断返回  
     53     print slice  
     54     print list #原有序列并没有改变。  
     55 
     56  
     57 
     58  
     59 
     60 随机整数:
     61 >>> import random
     62 >>> random.randint(0,99)
     63 21
     64 
     65 随机选取0到100间的偶数:
     66 >>> import random
     67 >>> random.randrange(0, 101, 2)
     68 42
     69 
     70 随机浮点数:
     71 >>> import random
     72 >>> random.random() 
     73 0.85415370477785668
     74 >>> random.uniform(1, 10)
     75 5.4221167969800881
     76 
     77 随机字符:
     78 >>> import random
     79 >>> random.choice('abcdefg&#%^*f')
     80 'd'
     81 
     82 多个字符中选取特定数量的字符:
     83 >>> import random
     84 random.sample('abcdefghij',3) 
     85 ['a', 'd', 'b']
     86 
     87 多个字符中选取特定数量的字符组成新字符串:
     88 >>> import random
     89 >>> import string
     90 >>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
     91 eplace(" ","")
     92 'fih'
     93 
     94 随机选取字符串:
     95 >>> import random
     96 >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
     97 'lemon'
     98 
     99 洗牌:
    100 >>> import random
    101 >>> items = [1, 2, 3, 4, 5, 6]
    102 >>> random.shuffle(items)
    103 >>> items
    104 [3, 2, 5, 6, 4, 1]
    View Code

    bisect.insort()插入

    bisect.bisect()找插入位置

     map接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。  

      ACM有时需要要a b c这样的一行格式输入,这时可以用map函数来处理,这里假设a,b,c都是整数。

    a, b, c = map(int, raw_input().split())

      raw_input函数输入的是字符串,字符串的split方法用来将字符串分割成序列。

    sort的使用

     1     a = [5,2,1,9,6]        
     2      
     3     >>> sorted(a)                  #将a从小到大排序,不影响a本身结构 
     4     [1, 2, 5, 6, 9] 
     5      
     6     >>> sorted(a,reverse = True)   #将a从大到小排序,不影响a本身结构 
     7     [9, 6, 5, 2, 1] 
     8      
     9     >>> a.sort()                   #将a从小到大排序,影响a本身结构 
    10     >>> a 
    11     [1, 2, 5, 6, 9] 
    12      
    13     >>> a.sort(reverse = True)     #将a从大到小排序,影响a本身结构 
    14     >>> a 
    15     [9, 6, 5, 2, 1] 
    16      
    17     注意,a.sort() 已改变其结构,b = a.sort() 是错误的写法! 
    18 
    19     >>> b = ['aa','BB','bb','zz','CC'] 
    20     >>> sorted(b) 
    21     ['BB', 'CC', 'aa', 'bb', 'zz']    #按列表中元素每个字母的ascii码从小到大排序,如果要从大到小,请用sorted(b,reverse=True)下同 
    22      
    23     >>> c =['CCC', 'bb', 'ffff', 'z']  
    24     >>> sorted(c,key=len)             #按列表的元素的长度排序 
    25     ['z', 'bb', 'CCC', 'ffff'] 
    26      
    27     >>> d =['CCC', 'bb', 'ffff', 'z'] 
    28     >>> sorted(d,key = str.lower )    #将列表中的每个元素变为小写,再按每个元素中的每个字母的ascii码从小到大排序 
    29     ['bb', 'CCC', 'ffff', 'z'] 
    30      
    31     >>> def lastchar(s): 
    32            return s[-1] 
    33     >>> e = ['abc','b','AAz','ef'] 
    34     >>> sorted(e,key = lastchar)      #自定义函数排序,lastchar为函数名,这个函数返回列表e中每个元素的最后一个字母 
    35     ['b', 'abc', 'ef', 'AAz']         #sorted(e,key=lastchar)作用就是 按列表e中每个元素的最后一个字母的ascii码从小到大排序 
    36      
    37     >>> f = [{'name':'abc','age':20},{'name':'def','age':30},{'name':'ghi','age':25}]     #列表中的元素为字典 
    38     >>> def age(s): 
    39            return s['age'] 
    40     >>> ff = sorted(f,key = age)      #自定义函数按列表f中字典的age从小到大排序  
    41      
    42     [{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}] 
    43      
    44     >>> f2 = sorted(f,key = lambda x:x['age'])    #如果觉得上面定义一个函数代码不美观,可以用lambda的形式来定义函数,效果同上 
    View Code

    字符串与列表

    s = ""  #字符串k = [] #列表

    ch = '2'

    s += ch

    k.append(ch)

    s.strip()

    ''.join(k)

    遍历列表

    1 foo = 'abc'
    2 for i in range(len(foo)):
    3     print foo[i], '(%d)' %i


    2.3之后添加

    1 foo = 'abc'
    2 for i, ch in enumerate(foo):
    3     print ch, '(%d)' % i
    1 s = 'abdasdas'
    2 for i in s:
    3     print i+'_',
    4 a_ b_ d_ a_ s_ d_ a_ s_

    ord()返回单字符在ascii中对应的整数

    char.isalpha()

    1 从上面几个例子中,可易理解Python lambda语法:
    2 
    3 lambda [arg1[,arg2,arg3....argN]]:expression
    4 
    5 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。
    6 
    7 print lambda:'beginman'   #<function <lambda> at 0x00B00A30>
  • 相关阅读:
    在springMVC的controller层获取view层的参数的方式
    springMVC创建基础变量
    javascript 继承
    CSS3的新属性的一下总结
    常用js函数整理--common.js
    function与感叹号
    javascript void运算符
    ui组件--弹出层layer的使用
    组件,控件,插件,库都是什么鬼啊
    jsdoc文档
  • 原文地址:https://www.cnblogs.com/usedrosee/p/4712360.html
Copyright © 2011-2022 走看看