1、并发和并行

     你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也 不支持并行。
     你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持 并发。
     你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

     并发的关键是你有处理多个任务的能力,不一定要同时。
     并行的关键是你有同时处理多个任务的能力。

     并发和并行的关键点在于同时。



2、map()函数
 
    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,

    得到一个新的 list 并返回。

    例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

    如果希望把list的每个元素都作平方,就可以用map()函数:    

       因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

    def f(x):
        return x*x
    print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    输出结果:[1, 4, 9, 10, 25, 36, 49, 64, 81]
    注意:map()函数不改变原有的 list,而是返回一个新的 list。

    利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。

    由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。


3、

    upper() 方法将字符串中的小写字母转为大写字母
    str.upper()

    lower() 将字符串中的大写转小写

   

4、python 匿名函数

     当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

     在Python中,对匿名函数提供了有限支持。还是以map()函数为例,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
                   [1, 4, 9, 16, 25, 36, 49, 64, 81]

     通过对比可以看出,匿名函数lambda x: x * x实际上就是:

def f(x):
          return x * x

        关键字lambda表示匿名函数,冒号前面的x表示函数参数。    

    匿名函数有个限制,就是只能有一个表达式,不用写return,返回 值就是该表达式的结果。

    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。

    此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

f = lambda x: x * x
          f
         <function <lambda> at 0x10453d7d0>
         f(5)  
        25

       同样,也可以把匿名函数作为返回值返回,比如:

def build(x, y):
return lambda: x * x + y * y


5、‘ 7w876543217w'怎么拆分成[7w,87,65,43,21,7w]

s='sef1234324sdf24sf'
           lis = [s[i:i+2] for i in range(0,len(s),2)]
           print lis
           ['se', 'f1', '23', '43', '24', 'sd', 'f2', '4s', 'f']