欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

元组、列表、字典

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

元组

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中的键。