• Python基础字符串、列表、元组、字典


    本篇文章将介绍Python3中常见数据类型:字符串、列表、元组、字典,主要关于是数据的遍历、修改、删除、保存。

    字符串

    将数据用单引号或者双引号括起来的就是字符串。字符串类似于C、Java中的字符数组,支持下标索引。

     a = “hello world”
     a = ‘hello world’
    print(a[4])
    输出:‘o’
    • 切片

      切片语法:[起始:结束:步长],切片区间是[起始:结束)即左闭右开的,起始位开始结束前一位结束。

    >>> mystr = 'abcdefghijk'
    >>> mystr[0:5]
    'abcde'
    >>> mystr[0:5:2]
    'ace'
    >>> mystr[5:1:-1]
    'fedc'
    >>> mystr[5:1:-2]
    'fd'
    >>> mystr[3:]
    'defghijk'
    >>> mystr[::3]
    'adgj'
    >>> mystr[:5]
    'abcde'
    >>> mystr[::]
    'abcdefghijk
    • 字符串常见操作

    (1) find  查询str是否包含在mystr中,如果是返回开始索引的位置,否则反回-1。

    find(str, start=0, end=len(mystr))
    >>> mystr = "hello world java python php" >>> mystr.find("world") 6 >>> mystr.find("python",0,10) -1

    (2) index 和find一样,如果查询不到将报异常错误。

    index(str, start=0, end=len(mystr))
    >>> mystr.find("python",0,10) -1 >>> mystr.index('python',0,10) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found

    (3) count,返回start和end之间str在mystr中出现的次数。

    count(str, start=0, end=len(mystr))
    
    >>> mystr="hello world python java python"
    >>> mystr.count("python")
    2

    (4)replace替换,把mystr中的str1成为str2,如果count指定,则替换不超过count次数。

    replace(str1, str2,  mystr.count(str1))
    
    >>> mystr="hello world python java python"
    >>> mystr.replace("python","python3",1)
    'hello world python3 java python'

    (5)split,用str为分割符切片mystr,如果指定maxsplit指定,则分割后是一个maxsplit+1的列表。

    split(str="", maxsplit )  
    
    >>> '1,2,3'.split(',')
        ['1', '2', '3']
    >>> '1,2,3'.split(',', maxsplit=1)
        ['1', '2,3']
    >>> '1,2,,3,'.split(',')
        ['1', '2', '', '3', '']

    (6)startswith,查询字符串是否是以obj开头,如果是则返回True,否则返回False

          endswith,查询字符串是否是以obj结束,如果是则返回True,否则返回False 

    mystr.startswith(obj)
    mystr.endswith(obj)
    
    >>> mystr = "hello world python java python"
    >>> mystr.startswith('hel')
    True
    >>> mystr.endswith('thon')
    True

    (7)strip删除两端空白,lstrip删除左边空白,rstrip删除右边空白

    >>> mystr = "   hello world python java linux    "
    >>> mystr.rstrip()
    '   hello world python java linux'
    >>> mystr.lstrip()
    'hello world python java linux    '
    >>> mystr.strip()
    'hello world python java linux'

    (8)join 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

    sep:分隔符。可以为空
    seq:要连接的元素序列、字符串、元组、字典
    即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
    返回值:返回一个以分隔符sep连接各个元素后生成的字符串
    
    >>> lis = ['shang','hai','zhong','guo']
    >>> ' '.join(lis)
    'shang hai zhong guo'

    列表

    列表对应于C、Java中的数组,它比数组强大的地方在于可以存储不同类型的值。如 testList =  [100,'HH']

    (1)循环遍历列表

    lis = ['my','name','is','zjh']
    for name in lis:
        print(name,end=' ')
    print()
    
    输出:my name is zjh
    i = 0
    while i < len(lis):
        print(lis[i],end=" ")
        i += 1
    print()
    
    my name is zjh 

    (2)增加元素,append, extend, insert

        append直接将新元素整体添加到列表末尾。

        extend(seq),sep元素列表,用于将元素逐一添加到列表中。

        insert(index,obj)在指定位置插入元素obj。

    >>> a = [1,2]
    >>> b = [3,4]
    >>> a.append(b)
    >>> a
    [1, 2, [3, 4]]
    >>> a.extend(b)
    >>> a
    [1, 2, [3, 4], 3, 4]
    
    >>> a = [1,2,3,4]
    >>> a.insert(2,'b')
    >>> a
    [1, 2, 'b', 3, 4]

    (3)修改元素

        元素修改时需要通过下标来修改指定的元素。

    >>> a = ['shanghai','beijing','shenzhen','guangzhou']
    >>> a[3] = 'wuhan'
    >>> a
    ['shanghai', 'beijing', 'shenzhen', 'wuhan']

    (4)删除元素

       del:根据小标删除元素

       pop: 删除最后一个元素

       remove: 根据元素的值删除

    ['shanghai', 'beijing', 'shenzhen', 'wuhan']
    >>> del a[0]
    >>> a
    ['beijing', 'shenzhen', 'wuhan']
    >>> a.pop()
    'wuhan'
    >>> a
    ['beijing', 'shenzhen']
    >>> a.remove('shenzhen')
    >>> a
    ['beijing']

    (5)查询元素

        Python中常用的方法:in 、not in、index、count。

        in  如果存在就返回True,否则返回False

        not in 如果不存在就返回True,否则返回False

    >>> slist = ['a','b','c','d']
    >>> "c" in slist
    True
    >>> "D" in slist
    False

      index 如果存在就返回位置,否则返回异常

      count 如果存在就返回个数,否则返回0

    >>> slist = ['a','b','c','d']
    >>> slist.count('a')
    1
    >>> slist.count('c')
    1
    >>> slist.count('F')
    0

    元组

    元组用小括号表示,和列表类似,只不过元组是不可修改类型。不支持添加、修改,但是可以访问。元组能够合并另一个元组。

    >>> mTuple = ('hello',1,55)
    >>> type(mTuple)
    <class 'tuple'>
    >>> mTuple[0]
    'hello'
    >>> mTuple.index(1)
    1
    >>> mTuple.count(55)
    1

    字典

    字典使用大括号表示,能够存储多个数据,数据用键-值对表示{key:value}。例如 info = {'name':'小周', 'id':100, 'sex':'f', 'address':'魔都'}

    (1)根据键访问值(访问不存在的键将报错)

    info = {'name':'小周', 'id':100, 'sex':'f', 'address':'魔都'}
    print("姓名:%s"%info['name'])
    age = info.get('age',18) # 若info中不存在'age'这个键,就返回默认值18
    print("小周年龄:%d"%age)
    
    姓名:小周
    小周年龄:18

    (2)修改元素

       字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改。

    info['id'] = 66
    print("修改之后的id=%d"%info['id'])
    
    输出:修改之后的id=66

    (3)添加元素

    info['education'] = '大学'
    print("添加新元素:%s"%info['education'])
    
    输出:添加新元素:大学

    (4)删除元素

    del info['sex']  #根据指定key删除
    print('删除sex:%s'%info)
    info.clear()       #清空整个字典
    print('清空字典:%s'%info)
    
    删除sex:{'address': '魔都', 'education': '大学', 'id': 66, 'name': '小周'}
    清空字典:{}

    (5)字典常见操作

    >>> info = {"name": "jinjin","address":"jingzhou"}
    >>> info.keys()
    dict_keys(['address', 'name'])
    >>> list(info.keys())    #返回所有字典KEY列表
    ['address', 'name']
    >>> list(info.values())  #返回所有value列表
    ['jingzhou', 'jinjin']
    >>> list(info.items())   #返回一个包含所有(key,value)元组的列表
    [('address', 'jingzhou'), ('name', 'jinjin')]
    >>> len(info) #获取字典键值对个数
    2

    注:python3 中info.keys()返回的是一个dict_keys()对象,所以要将其转换为list;Python2中info.keys()直接返回的是列表。

    遍历

    通过for ... in ...:的语法结构,可以遍历字符串、列表、元组、字典等数据结构。

    mystr = "hello world"
    print("字符串遍历:%s"%mystr)
    for char in mystr:
        print(char,end = " ")
    print()
    
    list1 = ["jin",1,2,3]
    print("列表遍历:%s"%list1)
    for i in list1:
        print(i,end=" ")
    print()
    
    Tuple = ("haa",1,3,5,7)
    print("元组遍历:",end="")
    print(Tuple)
    for tu in Tuple:
        print(tu,end=" ")
    print()
    
    dic = {"name":"xiaoxiao","age":18}
    print("遍历字典:%s"%dic)
    for key in list(dic.keys()):
        print(key,end=" ")
    print()
    
    for value in list(dic.values()):
        print(value,end= " ")
    print()
    
    for item in list(dic.items()):
        print(item,end= ",")
    print()
    
    for key,value in list(dic.items()):
        print("key=%s, value=%s"%(key,value))
    print()
    
    输出:
    字符串遍历:hello world
    h e l l o   w o r l d 
    列表遍历:['jin', 1, 2, 3]
    jin 1 2 3 
    元组遍历:('haa', 1, 3, 5, 7)
    haa 1 3 5 7 
    遍历字典:{'name': 'xiaoxiao', 'age': 18}
    name age 
    xiaoxiao 18 
    ('name', 'xiaoxiao'),('age', 18),
    key=name, value=xiaoxiao
    key=age, value=18

    公共方法

     注:in在操作对象是字典时,判断的是key

    内置函数

  • 相关阅读:
    【SVN解决代码提交冲突】https://www.cnblogs.com/aaronLinux/p/5521844.html
    查询有2门及以上不及格科目的学生姓名及其平均成绩
    【Python】split
    【Python】文件处理
    【robotframework】打开浏览器提示:NoSuchWindowException: Message: Unable to get browser
    定位到新窗口
    8月1号
    【定位】https://blog.csdn.net/cyjs1988/article/details/76284289
    【Robotframework】脚本跑完后自动发送邮件
    jQuery Mobile Data 属性
  • 原文地址:https://www.cnblogs.com/jsnhdream/p/10011891.html
Copyright © 2020-2023  润新知