zoukankan      html  css  js  c++  java
  • python-基础-字符串-列表-元祖-字典

    1 字符串

    1.1 下标和切片

     1.2 切片

    1.3 字符串常见操作

    如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作

    <1>find

    检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

    mystr.find(str, start=0, end=len(mystr))

    <2>index

    跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

    mystr.index(str, start=0, end=len(mystr)) 

    <3>count

    返回 str在start和end之间 在 mystr里面出现的次数

    mystr.count(str, start=0, end=len(mystr))

    <4>replace

    把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

    mystr.replace(str1, str2,  mystr.count(str1))

    <5>split

    以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串

    mystr.split(str=" ", 2)    

    <6>capitalize

    把字符串的第一个字符大写

    mystr.capitalize()

    <7>title

    把字符串的每个单词首字母大写

    >>> a = "hello itcast"
    >>> a.title()
    'Hello Itcast'
    

    <8>startswith

    检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False

    mystr.startswith(obj)

    <9>endswith

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

    mystr.endswith(obj)

    <10>lower

    转换 mystr 中所有大写字符为小写

    mystr.lower()       

    <11>upper

    转换 mystr 中的小写字母为大写

    mystr.upper()    

    <12>ljust

    返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

    mystr.ljust(width) 

    <13>rjust

    返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

    mystr.rjust(width)  

    <14>center

    返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

    mystr.center(width)   

    <15>lstrip

    删除 mystr 左边的空白字符

    mystr.lstrip()

    <16>rstrip

    删除 mystr 字符串末尾的空白字符

    mystr.rstrip()    

    <17>strip

    删除mystr字符串两端的空白字符

    >>> a = "
    	 itcast 	
    "
    >>> a.strip()
    'itcast'
    

    <18>rfind

    类似于 find()函数,不过是从右边开始查找.

    mystr.rfind(str, start=0,end=len(mystr) )

    <19>rindex

    类似于 index(),不过是从右边开始.

    mystr.rindex( str, start=0,end=len(mystr))

    <20>partition

    把mystr以str分割成三部分,str前,str和str后

    mystr.partition(str)

    <21>rpartition

    类似于 partition()函数,不过是从右边开始.

    mystr.rpartition(str)

    <22>splitlines

    按照行分隔,返回一个包含各行作为元素的列表

    mystr.splitlines()  

    <23>isalpha

    如果 mystr 所有字符都是字母 则返回 True,否则返回 False

    mystr.isalpha()  

    <24>isdigit

    如果 mystr 只包含数字则返回 True 否则返回 False.

    mystr.isdigit() 

    <25>isalnum

    如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

    mystr.isalnum()  

    <26>isspace

    如果 mystr 中只包含空格,则返回 True,否则返回 False.

    mystr.isspace()   

    <27>join

    mystr 中每个字符后面插入str,构造出一个新的字符串

    mystr.join(str)

     

     2 列表

    2.1 列表的介绍

     

    2.2 列表的相关操作

    <1>添加元素("增"append, extend, insert)

    append

    通过append可以向列表添加元素

    demo:

        #定义变量A,默认有3个元素
        A = ['xiaoWang','xiaoZhang','xiaoHua']
    
        print("-----添加之前,列表A的数据-----")
        for tempName in A:
            print(tempName)
    
        #提示、并添加元素
        temp = input('请输入要添加的学生姓名:')
        A.append(temp)
    
        print("-----添加之后,列表A的数据-----")
        for tempName in A:
            print(tempName)
    

    结果:

    extend

    通过extend可以将另一个集合中的元素逐一添加到列表中

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

    insert

    insert(index, object) 在指定位置index前插入元素object

    >>> a = [0, 1, 2]
    >>> a.insert(1, 3)
    >>> a
    [0, 3, 1, 2]
    

    <2>修改元素("改")

    修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

    demo:

        #定义变量A,默认有3个元素
        A = ['xiaoWang','xiaoZhang','xiaoHua']
    
        print("-----修改之前,列表A的数据-----")
        for tempName in A:
            print(tempName)
    
        #修改元素
        A[1] = 'xiaoLu'
    
        print("-----修改之后,列表A的数据-----")
        for tempName in A:
            print(tempName)
    

    结果:

        -----修改之前,列表A的数据-----
        xiaoWang
        xiaoZhang
        xiaoHua
        -----修改之后,列表A的数据-----
        xiaoWang
        xiaoLu
        xiaoHua
    

    <3>查找元素("查"in, not in, index, count)

    所谓的查找,就是看看指定的元素是否存在

    in, not in

    python中查找的常用方法为:

    • in(存在),如果存在那么结果为true,否则为false
    • not in(不存在),如果不存在那么结果为true,否则false

    demo

        #待查找的列表
        nameList = ['xiaoWang','xiaoZhang','xiaoHua']
    
        #获取用户要查找的名字
        findName = input('请输入要查找的姓名:')
    
        #查找是否存在
        if findName in nameList:
            print('在字典中找到了相同的名字')
        else:
            print('没有找到')
    

    结果1:(找到)

    结果2:(没有找到)

    说明:

    in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在

    index, count

    index和count与字符串中的用法相同

    >>> a = ['a', 'b', 'c', 'a', 'b']
    >>> a.index('a', 1, 3) # 注意是左闭右开区间
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 'a' is not in list
    >>> a.index('a', 1, 4)
    3
    >>> a.count('b')
    2
    >>> a.count('d')
    0
    

    <4>删除元素("删"del, pop, remove)

    类比现实生活中,如果某位同学调班了,那么就应该把这个条走后的学生的姓名删除掉;在开发中经常会用到删除这种功能。

    列表元素的常用删除方法有:

    • del:根据下标进行删除
    • pop:删除最后一个元素
    • remove:根据元素的值进行删除

    demo:(del)

        movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
        print('------删除之前------')
        for tempName in movieName:
            print(tempName)
    
        del movieName[2]
    
        print('------删除之后------')
        for tempName in movieName:
            print(tempName)
    

    结果:

        ------删除之前------
        加勒比海盗
        骇客帝国
        第一滴血
        指环王
        霍比特人
        速度与激情
        ------删除之后------
        加勒比海盗
        骇客帝国
        指环王
        霍比特人
        速度与激情
    

    demo:(pop)

        movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
        print('------删除之前------')
        for tempName in movieName:
            print(tempName)
    
        movieName.pop()
    
        print('------删除之后------')
        for tempName in movieName:
            print(tempName)
    

    结果:

        ------删除之前------
        加勒比海盗
        骇客帝国
        第一滴血
        指环王
        霍比特人
        速度与激情
        ------删除之后------
        加勒比海盗
        骇客帝国
        第一滴血
        指环王
        霍比特人
    

    demo:(remove)

        movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
        print('------删除之前------')
        for tempName in movieName:
            print(tempName)
    
        movieName.remove('指环王')
    
        print('------删除之后------')
        for tempName in movieName:
            print(tempName)
    

    结果:

        ------删除之前------
        加勒比海盗
        骇客帝国
        第一滴血
        指环王
        霍比特人
        速度与激情
        ------删除之后------
        加勒比海盗
        骇客帝国
        第一滴血
        霍比特人
        速度与激情
    

    <5>排序(sort, reverse)

    sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

    reverse方法是将list逆置。

    >>> a = [1, 4, 2, 3]
    >>> a
    [1, 4, 2, 3]
    >>> a.reverse()
    >>> a
    [3, 2, 4, 1]
    >>> a.sort()
    >>> a
    [1, 2, 3, 4]
    >>> a.sort(reverse=True)
    >>> a
    [4, 3, 2, 1]

    2.3 列表嵌套

    1. 列表嵌套

    类似while循环的嵌套,列表也是支持嵌套的

    一个列表中的元素又是一个列表,那么这就是列表的嵌套

        schoolNames = [['北京大学','清华大学'],
                        ['南开大学','天津大学','天津师范大学'],
                        ['山东大学','中国海洋大学']]
    

    2. 应用

    一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

    #encoding=utf-8
    
    import random
    
    # 定义一个列表用来保存3个办公室
    offices = [[],[],[]]
    
    # 定义一个列表用来存储8位老师的名字
    names = ['A','B','C','D','E','F','G','H']
    
    i = 0
    for name in names:
        index = random.randint(0,2)    
        offices[index].append(name)
    
    i = 1
    for tempNames in offices:
        print('办公室%d的人数为:%d'%(i,len(tempNames)))
        i+=1
        for name in tempNames:
            print("%s"%name,end='')
        print("
    ")
        print("-"*20)

     接下:http://www.cnblogs.com/liu-wang/p/8973643.html

  • 相关阅读:
    【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入
    【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题
    【2018.04.19 ROS机器人操作系统】机器人控制:运动规划、路径规划及轨迹规划简介之一
    March 11th, 2018 Week 11th Sunday
    March 10th, 2018 Week 10th Saturday
    March 09th, 2018 Week 10th Friday
    March 08th, 2018 Week 10th Thursday
    March 07th, 2018 Week 10th Wednesday
    ubantu之Git使用
    AMS分析 -- 启动过程
  • 原文地址:https://www.cnblogs.com/liu-wang/p/8973273.html
Copyright © 2011-2022 走看看