美文网首页
Python基础知识(二)

Python基础知识(二)

作者: benco66 | 来源:发表于2017-08-13 17:16 被阅读61次

    上节简单介绍了Python中版本、注释以及数据类型,本节着重介绍Python中字符串、列表、元组的基本用法和注意事项。
    往期目录
    Python基础知识(一)

    补充知识:序列的通用操作

    序列的通用操作(str,list,tuple):取值,切片,步长,通用操作即指str,list,tuple都适用的操作。以下以字符串举例:

    #初始化字符串
    s = '123456789'
    
    #取值  按索引取值,自左向右从0开始
    s[0]   
    >>>'1'
    
    #切片  给出起始索引和结束索引取出片段,[1:2]前者为起始索引,后者是结束索引
    s[1:2]   
    >>>'23'
    
    #步长  [1:2:3] 3是指步长,在切片内每三个元素为一组取出第一个元素。如果切片内元素个数小于步长,则默认取出切片内全部元素;
    s[1:2:3]  
    >>>'2'
    s[::3]  
    >>>'147' 
    #注:不设置起始索引和结束索引,默认取所有元素,步长为3,在切片每三组取出第一个元素
    
    #用len()计算序列元素的个数
    len(s)  
    >>>9
    

    一.列表的常用方法

    1. 创建列表
    >>>ls = list()  
    

    2.在列表末尾添加单个元素

    >>>ls.append('a')   #参数是元素对象
    >>>ls
    ['a']
    

    3.在列表末尾添加多个元素

    >>>ls.extend([1,2,3])  #类似于 +拼接
    >>>ls
    ['a', 1, 2, 3]
    

    注:ls.extend(obj),obj可以是元素、列表、字典,如是字典则只会添加字典的key 。

    4.指定位置插入元素

    ls.insert(2,'b')  #(索引,元素) 
    >>>ls
    ['a',1,'b',2,3]
    

    注:若要插入列表末尾索引用len(ls),如果索引值超出列表,则默认插入到列表末尾,不考虑插入索引越界。

    5.取出列表中元素的索引

    >>>ls.index('a')  
    0
    >>>ls.index('c')
    ValueError: 'c' is not in list
    >>>lss = ['a','b','b','b','c']
    >>>lss.index('b',2)
    2
    >>>lss.index('b',1,2)
    1
    

    注:如果元素不存在列表中会报错;如果元素中存在多个相同元素,可以指定从第几个索引开始取;index('b',2)指从列表中第2个索引开始到结尾这一片段中取出最左边的一个元素'b'的索引;index('b',1,2)指取出列表从索引1到索引2这一片断中最左边的一个元素‘b'的索引,如果取不到元素也报错。

    6.统计某个元素在列表中出现的次数

    >>>ls.count('a')  
    1
    >>> ls.count('c')
    0
    

    注:如果元素不存在列表中,不报错,返回值是0

    7.出栈,指将指定元素移出列表,可指定位置(索引),默认值是-1,返回值是索引对应的元素

    >>>ls.pop()
    3
    >>>ls
    ['a',1,'b',2]
    >>>ls.pop(0)
    'a'
    >>>ls
    [1,'b',2]  
    

    8.移除单个元素

    >>>ls.remove('b')
    >>>ls
    [1,2]
    ls = [1,2,1,2,1,2]
    ls.remove(1)
    >>>ls
    [2,1,2,1,2]
    

    注:如果列表中存在多个相同元素,默认移除最左边开始第一个

    9.清空整个列表

    >>>ls.remove()
    >>>ls
    

    10.复制整个列表

    >>>ls1 = [1,2,3,4]
    >>>ls2 = ls1.copy()
    >>>ls2
    [1,2,3,4]
    

    11.反向列表中的元素

    >>>ls1.reverse()
    >>>ls1
    [4,3,2,1]
    

    12.对原列表进行排序,原列表中元素要相同

    >>>ls1 = [2,1,3,5,4]
    >>>ls1.sort()
    >>>ls1
    [1,2,3,4,5]
    >>>ls2 = ['b','a','c']
    >>>ls2.sort()
    >>>ls2
    ['a','b','c']
    >>>ls3 = [[1,2,2],(1,),'11232333']
    >>>ls3.sort()
    TypeError: '<' not supported between instances of 'tuple' and 'list'
    >>>ls3.sort(key=len)
    >>>ls3
    [(1,), [1, 2, 2], '11232333']
    >>>ls3.sort(key=len,reverse=True)
    >>>ls3
    ['11232333', [1, 2, 2], (1,)]
    

    注:L.sort(key=None, reverse=False),默认有两个参数,key会自动根据列表中类型变化(前提是元素类型相同),也可指定根据何种类型排序,key = int / str / len / lambda ,reverse默认为升序;如果元素类型不同需要指定按何种标准排序,且元素都适用这一标准,如ls3

    13.内置函数

    内置函数会返回一个新的列表对象,而不改变原列表;
    排序:sorted(obj,key=None,reverse=False)
    反向:reversed(obj)

    >>>sorted(ls3,key=len)
    [(1,), [1, 2, 2], '11232333']
    >>>ls3
    ['11232333', [1, 2, 2], (1,)]
    >>>reversed(ls3)
    [(1,), [1, 2, 2], '11232333']
    >>>ls3
    ['11232333', [1, 2, 2], (1,)]
    

    二.元组的常用方法

    1.创建元组

    >>>tp = ('a','b','a','b','a','b')
    

    注意:声明只有一个元素的元组时要加逗号,如 tp = ('a',)

    2.统计元素在元组中出现的次数

    >>>tp.count('a')
    3
    

    3.取出元组中元素的索引

    >>>tp.index('a')
    0
    >>>tp.index('a',1)
    2
    >>>tp.index('a',2,4)
    2
    >>>tp.index('c')
    ValueError: tuple.index(x): x not in tuple
    >>>tp.index('a',1,2)
    ValueError: tuple.index(x): x not in tuple
    

    注:'a'在元组中有多个,默认取出最左边的第一个;也可指定取出第几个'a',自左向右从0开始。如果元素不存在或指定位置的元素不存在,会报错。

    三.字符串的常用操作

    1.创建字符串

    >>>s = '121212343434'
    

    2.统计子字符串在字符串中出现的次数

    >>>s.count('1')
    3
    >>>s.count('2',2,3)
    1
    

    注:在字符串中count方法带可选参数,可指定在起始索引到结束索引切片中统计次数

    3.取出子字符串的索引:S.index(sub[, start[, end]]) -> int

    >>>s.index('1')
    0
    >>>s.index('2',1,3)
    1
    

    注:取出子字符串的索引,或取出子字符串在指定切片中的索引,有重复字符默认取出最左边第一个。取不到则报错。

    4.查找字符的索引:S.find(sub[, start[, end]]) -> int

    >>>s.find('1')
    0
    >>>s.find('2',1,2)
    1
    

    注:该方法和index类似,不同的是如果取不到,index报错;find不报错,返回-1。

    5.字符串替换:S.replace(old, new[, count]) -> str

    >>>s.replace('1','x')
    'x2x2x2343434'
    >>>s.replace('2','y',2)
    '1y1y12343434
    >>>s
    '121212343434'
    

    注:字符串是不可变的,所以替换并没有改变原有字符串,而是得到了一个新的字符串。s.replace('2','y',2) 2是替换的个数。

    6.字符串分割:S.split(sep=None, maxsplit=-1) -> list of strings

    >>>s.split()
    ['121212343434']
    >>> s.split('2')
    ['1', '1', '1', '343434']
    >>> s
    '121212343434'
    >>> s.split('2',2)
    ['1', '1', '12343434']
    

    注:s.split()返回一系列用空格分割的字符串列表;s.split('2',2)按'2'分割,最多分割2次。

    7.字符串判其他操作

    #判断字符串是否以x开头
    s.startswith(x)
    #判断字符串是否以x结尾
    s.endswith(x)
    #字符串转小写
    s.lower()
    #字符串转大写
    s.upper()
    #测试是否全是小写
    s.islower ()
    #测试是否全是大写
    s.isupper ()
    #测试是否全是字符,都是返回 True,否则返回 False
    s.isalpha ()
    #测试是否全是数字,都是返回 True 否则返回 False
    s.isdigit () 
    

    新手上路多多指教!错误之处敬请指出来!下节介绍集合和字典!

    相关文章

      网友评论

          本文标题:Python基础知识(二)

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