美文网首页
Python基本语法——列表、元组、字典、字符串

Python基本语法——列表、元组、字典、字符串

作者: 豌豆花下猫 | 来源:发表于2017-05-19 08:23 被阅读106次

    一、列表(List)

    List(列表) 是 Python 中最通用的序列。列表是一个任意类型对象位置的相关有序集合,它没有固定大小。不像字符串,其大小是可以变的,通过对偏移量进行赋值以及其他各种列表的方法进行调用,可以修改列表大小。

    索引是从0开始而非1开始!!

    列表中值的分割用变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认“0”开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。可以对列表进行索引、切片等操作,看下面例子。

    A=[1,'Hello RaQuant',3.14]

    len(A)

    3

    print(A[-1])

    3.14

    A[0:-1]

    [1, 'Hello RaQuant']

    A+[2,3,"a"]

    [1, 'Hello RaQuant', 3.14, 2, 3, 'a']

    Python 的列表数据类型包含更多的方法。list.append(x) 把一个元素添加到列表的结尾。

    list.append(x) 把一个元素添加到列表的结尾。

    list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中。

    list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)。

    list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。

    list.pop([i]) 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从链表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,这个经常会在 Python 库参考手册中遇到这样的标记。)

    list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。

    list.count(x) 返回 x 在链表中出现的次数。

    list.sort(cmp=None, key=None, reverse=False) 对列表中的元素进行排序(参数可以用来自定义排序方法,参考 sorted() 的更详细的解释)。

    list.reverse() 就地倒排链表中的元素

    del list[i] 有个方法可以从列表中按给定的索引而不是值来删除一个子项:del 语句。它不同于有返回值的 pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过一个方法是将空列表赋值给列表的切片)

    A.append(888)

    A

    [1, 'Hello RaQuant', 3.14, 888]

    A.remove(888)

    A

    [1, 'Hello RaQuant', 3.14]

    二、字典(dictionary)

    序列(或者列表)是以连续的整数为索引,与此不同的是,字典以”关键字”为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以作为关键字,如果它直接或间接地包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引、切割或者 append() 和 extend() 等方法改变。

    字典是无序的键:值对 (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。使用大括号创建一个空的字典:{}。初始化列表时,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。

    字典的主要操作是依据键来存储和取值。

    D={"A":12,"B":23,"C":34}

    D

    {'A': 12, 'B': 23, 'C': 34}

    D={}

    D['A']=12

    D['B']=23

    D['C']=34

    D

    {'A': 12, 'B': 23, 'C': 34}

    常用的字典操作方法:

    D.clear()删除字典内所有元素

    D.copy()返回一个字典的复制

    D.fromkeys(seq,val)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

    D.get(key, default=None)返回指定键的值,如果值不在字典中返回default值

    D.has_key(key)如果键在字典dict里返回true,否则返回false

    D.items()以列表返回可遍历的(键, 值) 元组数组

    D.keys()以列表返回一个字典所有的键

    D.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

    D.update(dict2)把字典dict2的键/值对更新到dict里

    D.values()以列表返回字典中的所有值

    D.pop(key)删除一个键并返回它的值,类似于列表的pop,只不过删除的是一个键不是一个可选的位置

    del D[key]删除键

    D[key] = 42新增或修改键

    注意事项:

    序列运算无效,字典元素间是没有顺序的概念

    对新索引赋值会添加项

    键不一定总是字符串

    三、元组(Tuple)

    元组在实际应用中不如前面两种多,但左右一种重要的数据结构还是很有必要熟悉并掌握。

    元组数据特点:

    任意对象的有序集合 元组与字符串和列表类似,是一个位置有序的对象的集合(也就是其内容维持从左到右的顺序)。与列表相同,可以嵌入到任何类别的对象中。

    通过偏移存取 通过偏移而不是键来访问,例如可以使用索引,切片

    属于不可变序列类型 不能在原处修改(因为他们是不可变的),但可以进行组合和复制,运算后会生成一个新的元组。

    创建元组:

    tup1=()

    tup2=(520,)

    tup3=(12,34)

    tup=('a','b','c')

    调用:

    tup3[0]

    12

    修改元组:

    元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如:

    tup5=tup3+tup

    tup5

    (12, 34, 'a', 'b', 'c')

    删除元组:

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

    del tup2

    Python 的元组数据类型包含更多的方法。

    tup.index(x, [start, [stop]])) 返回元组中start到stop索引中第一个值为 x 的元素在整个列表中的索引。如果没有匹配的元素就会返回一个错误。

    tup.count(x) 返回 x 在元组中出现的次数。

    cmp(tuple1, tuple2) 比较元组中两个元素。

    len(tuple) 计算元组元素个数。

    max(tuple) 返回元组中元素最大值。

    min(tuple) 返回元组中元素最小值。

    tuple(seq) 将列表转换为元组。

    元组不提供字符串、列表和字典中的方法。如果相对元组排序,通常先得将它转换为列表并使其成为一个可变对象,才能获得使用排序方法,或使用sorted内置方法。

    四、字符串

    字符串可以用''或者""括起来表示。

    如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示,同理,如果字符串包含",我们就可以用' '括起来表示:

    "I'm OK"

    'Learn "Python" in imooc'

    如果字符串既包含'又包含"怎么办?此时,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。要表示字符串 Bob said "I'm OK".由于 ‘ 和 ” 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为:

    'Bob said \"I\'m OK\".'

    注意:转义字符 \ 不计入字符串的内容中。要计算str包含多少个字符,可以用len()函数:

    >>> len('ABC')

    3

    >>> len('中文')

    2

    下面介绍一个使用频率比较高的字符串处理功能:格式化。

    我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。在Python中,用%来实现字符串的格式化,举例如下:

    >>> 'Hello, %s' % 'world'

    'Hello, world'

    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)

    'Hi, Michael, you have $1000000.'

    在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:

    >>> 'Age: %s. Gender: %s' % (25, True)

    'Age: 25. Gender: True'

    有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:

    >>> 'growth rate: %d %%' % 7

    'growth rate: 7 %'

    如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:

    r'\(~_~)/ \(~_~)/'

    但是r'...'表示法不能表示多行字符串,如果要表示多行字符串,可以用'''...'''表示:

    '''Line 1

    Line 2

    Line 3'''

    字符串可以用+号连接起来,用*号重复:

    >>> word = 'Help' + 'A'

    >>> word

    'HelpA'

    >>> '<' + word*5 + '>'

    ''

    >>>

    字符串可以象在C 中那样用下标索引,字符串的第一个字符下标为0,(注:这里用到了list列表切片处理):

    >>> word[4]

    'A'

    >>> word[0:2]

    'He'

    >>> word[2:4]

    'lp'

    >

    相关文章

      网友评论

          本文标题:Python基本语法——列表、元组、字典、字符串

          本文链接:https://www.haomeiwen.com/subject/thnexxtx.html