一切过往,皆为序章,一切未知,皆为终章。

元组、列表、字典

元组

1.与字符串相同的是元组是一些元素的不可变有序序列。与字符串的区别是元组中的元素不一定是字符,其中的按个元素可以是任意类型,且他们彼此之间的类型也可以不同。
2.元组可以进行的操作:
    重复操作、连接、索引、切片...
    3*('a',2) = ('a',2,'a',2,'a',2)
    ('a',2) + ('b',3)
    a = (1,2,3)   a[0] = (1)
    a = (1,2,3)   a[0:2] = (1,2)

字符串

s.count(s1):计算字符串s1在s中出现的次数。
s.find(s1):返回子字符串s1在s中第一次出现时的索引值,如果s1不在s中,则返回-1。
s.rfind(s1):功能与find相同,只是从s的末尾开始反向搜索(rfind中的r表示反向)。
s.index(s1):功能与find相同,只是如果s1不在s中,则抛出一个异常(第7章)。
s.index(s1):功能与index相同,只是从s的末尾开始。
s.lower():将s中的所有大写字母转换为小写。
s.replace(old, new):将s中出现过的所有字符串old替换为字符串new。
s.rstrip():去掉s末尾的空白字符。
s.split(d):使用d作为分隔符拆分字符串s,返回s的一个子字符串列表。

列表

1.与元组类似,列表也是值的有序序列,每个值都可以由索引进行标识。区别列表使用的是中括号,而元组使用的是小括号。
    注意:空列表写作[],单元素列表不需要再比括号前面加上那个(特别容易忘掉的)逗号
2.列表是可变的,而元组和字符串是不可变的。
3.列表操作:
    L.append(e):将对象e追加到L的末尾
    L.count(e):返回e在L中出现的次数
    L.insert(i,e):将对象e插入L中索引值为i的位置
    L.extend(L1):将L1中的项目追加到L末尾
    L.remove(e):从L中删除第一个出现的e
    L.index(e):返回e第一次出现在L中时索引值。若e不在L中,抛出一个异常
    L.pop(i):删除并返回L中索引值为i的项目。若L为空,则跑出异常;i被省略,默认为-1,删除并返回L中最后一个元素
    L.sort(i):升序排列L中的元素
    L.reverse():翻转L中元素的顺序

列表推导式

1.列表推导式提供了一种简介的方式,将某种操作应用到序列中的一个值上。他会创建一个新列表,其中的每个元素都是一个序列中的值应用给定操作后的结果。
mixed = [1, 2, 'a', 3, 4.0]
print([x**2 for x in mixed if type(x) == int])

高阶函数

1.使用函数作为实参可以实现一种名为高阶编程的编码方式,这种方式与列表结合使用非常方便。
2.map高阶函数:
    a.map函数被设计为与for循环结合使用。在map函数的最简形式中,第一个参数是个一元函数(即只有一个参数的函数),第二个参数是有序的值集合,集合中可以一元函数的参数.
    b.map函数更一般的的形式是,第一个参数可以是具有N个参数的函数,在这种情况下,它后边必须跟随着N个有序集合(这些集合的长度都一样)
    L1 = [1, 28, 36]
    L2 = [2, 57, 9]
    for i in map(min, L1, L2):
    print(i)    
3.匿名函数
匿名函数就是没有绑定名称的函数,这时要使用保留字lambda。一般表达式的形式为:
    lambda <sequence of variable names>: <expression>
lambda表达式lambda x,y:x*y会返回一个函数,这个函数的返回值为两个参数的乘积。lambda表达式经常用作高阶函数的实参。
    L = []
    for i in map(lambda x,y:x*y,[1,2,3,4],[3,2,1,0]):
        L.append(i)
    print(L)

输出:[1,4,3,1]

序列类型比对

类型      元素类型        字面量示例           是否可变
str     字符型     '','a','abc'        否
tuple   任意类型        (),(2,),('abc',4)   否
range   整型          range(10)           否
list    任意类型        [],[3],['abc',4]    是

字典

1.字典(dictionary)类型的对象与列表很相似,区别在于字典使用键对其中的值进行引用,可以将字典看做一个键/值对的集合。字典类型的字面量用大括号表示,其中元素写法是键加冒号再加上值。
    monthNumbers = {'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5,
    1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May'}
2.dict中的项目是无序的,不能通过索引引用。
3.dict的操作:
    len(d):返回d中项目的数量。
    d.keys():返回d中所有键的视图。
    d.values():返回d中所有值的视图。
    k in d:如果k在d中,则返回True。
    d[k]:返回d中键为k的项目。
    d.get(k, v):如果k在d中,则返回d[k],否则返回v。
    d[k] = v:在d中将值v与键k关联。如果已经有一个与k关联的值,则替换。
    del d[k]:从d中删除键k。
    for k in d:遍历d中的键。
posted @ 2018-07-26 20:26  爱吃帮帮糖  阅读(306)  评论(0编辑  收藏  举报