zoukankan      html  css  js  c++  java
  • python开发学习day06 (str操作; list操作)

    2020-06-08                             目录:

    一、字符串及其操作

    1.1  用途

    1.2  定义方式

    1.3  常用操作+内置的方法

    1.31  按索引取值

    1.3.2  切片

    1.3.3  长度len

    1.3.4  成员运算in 和 not in

    1.3.5  移除空白strip()

    1.3.6  切分split

    1.3.7  循环 

    1.4  需要掌握的操作

    1.4.1  strip, lstrip,rstrip

    1.4.2  lower,upper

    1.4.3  startswith, endswith

    1.4.4  format三种用法

    1.4.5  split,rsplit

    1.4.6  join

    1.4.7  replace

    1.4.8  isdigit

    1.5  了解即可的操作

    1.5.1  find,rfind,index,rindex,count

    1.5.2  center,ljust,rjust,zafill

    1.5.3  expandtabs

    1.5.4  is数字系列

    1.5.6  is其他

    1.6  类型总结

    二、列表及其操作

    2.1  用途

    2,2  定义方式

    2.3  常用操作

    2.3.1  按索引取、改值

    2.3.2  切片

    2.3.3  长度

    2.3.4 成员运算

    2.3.5  追加

    2.3.6  删除

    2.3.7  循环

    2.4  需要掌握的操作

    2.5  类型总结  

    一、字符串及其操作

    1.1  用途

    记录描述性质的状态

    1.2  定义方式

    在单引号、双引号、三引号内包含的一串字符
    数据类型转换:str可以把任意类型转换成字符串类型

    1.3  常用操作+内置的方法

    1.31  按索引取值

    可以正向取+反向取,但是只能取,不可改

    msg = 'hello world'
    print(msg[0])    # 取出的由单一字符组成的字符串"h"

    1.3.2  切片

    顾头不顾尾,有步长

    msg = 'hello world' 
    print(msg[0:4])     # >>> hell         默认步长为1,取第1到第4个字符, 原字符串不变
    print(msg[:6:2])     # >>> hlo          省略起始位置,默认起始位置为0
    print(msg[::2])       # >>> hlowrd       省略结束位置,默认一直到末尾全部都取到
    print(msg[::])        # >>> hello world  省略步长,默认步长为1
    print(msg[:])         # >>> hello world  省略步长,默认步长为1

    拓展了解:

    print(msg[-1:-5:-1])    # >>> dlro  步长方向要与取值方向一致

    1.3.3  长度len

    msg = 'hello
    你好'
    print(len(msg))    # >>>8  统计的是字符的个数

    1.3.4  成员运算in 和 not in

    msg = "hello 你好"
    print("你好" in  msg)
    print("你好" not in msg) # 推荐使用
    print(not "你好" in msg) # 不推荐使用

    1.3.5  strip

    移除空白strip()

    msg="     
      hello   "
    res=msg.strip()    #默认移除两边的空白字符,包括
    ,	
    print(res)

    移除字符

    msg = "==hello!()"
    res = msg.strip("()=!")
    print(res)    # 得到的是新字符串,没有改变原来的

    1.3.6  切分split

    msg = "a:b:c:d"        # >>>字符串按:号有规律的分布
    res = msg.split(':')
    print(res)          # >>> ['a', 'b', 'c', 'd']
    

    msg = "hello 你 好" # >>>字符串按空格符有规律的分布 print(msg.split(' ')) # >>> ['hello', '你', '好']

    1.3.7  循环

    for x in "hello":
    print(x)

    1.4  需要掌握的操作

    1.4.1  strip, lstrip,rstrip

    msg = "*****hello*****"
    print(msg.strip('*'))    # >>> hello       去除两边的*号
    print(msg.lstrip('*'))   # >>> hello*****  去除左边的*号
    print(msg.rstrip('*'))   # >>> *****hello  去除右边的*号

    1.4.2  lower,upper

    msg = "aABb"
    print(msg.lower())  # >>> aabb  所有字母全部小写
    print(msg.upper())  # >>> AABB  所有字母全部大写

    1.4.3  startswith, endswith

    msg = "tomorrow is Tuesday"
    print(msg.startswith("to"))   # >>> True 判断是否是以to开头
    print(msg.endswith("day"))    # >>> True 判断是否是以day结尾

    1.4.4  format三种用法

    print("my name is %s %s" % ("jason", 18))
    ②
    print("my name is {} {}".format("jason", 18))
    print("my name is {x} {y}".format(y=18, x="jason"))
    print("my name is {0} {1}".format("jason", 18))
    ③
    x = 'jason'
    y = 18
    print(f"my name is {x} {y}")  #python3.5版本及之后支持
    以上代码均可实现格式化输出"my name
    is jason 18"

    1.4.5  split,rsplit

    msg = "Jason:18:male"
    print(msg.split(':', 2))   # >>> ['Jason', '18', 'male'] 正向分割两次
    print(msg.split(':', 1))   # >>> ['Jason', '18:male'] 正向分割一次
    print(msg.rsplit(':', 1))  # >>> ['Jason:18', 'male'] 从右边分割一次

    1.4.6  join

    把列表拼成一个str,列表中的元素必须全部为str类型

    l = ['a', 'b', 'c', 'd']
    print(":".join(l))   # >>> a:b:c:d
    print("-".join(l))   # >>> a-b-c-d
    print("=".join(l))   # >>> a=b=c=d

    1.4.7  replace

    msg = "  he       l lo "
    res = msg.replace(' ', '')  
    print(res)    # >>> hello  将空格符替换成空
    print('cc cc cc'.replace('cc', 'CC', 2))    # >>> CC CC cc  (将前两个"cc"替换成"CC")

    1.4.8  isdigit

    age = "18****"
    print(age.isdigit())  # >>>False (判断是否是纯数字,小数点、空格都不能有)

    1.5  了解即可的操作

    1.5.1  find, rfind, index, rindex, count

    print("abcd".find("ab"))  # >>>0 (查找一个子字符串在大字符串中出现的起始位置)如果查不到则返回-1
    print("aaabcdefg".find("ab", 2, 5))  # >>>2 (查找某段字符串的子字符串在大字符串中出现的起始位置)
    print("abcdefgab".rfind("ab"))  # >>>7 (查找在大字符串中右数第一次出现的子字符串的起始位置)
    print("====".index("ab"))  # 找不到则报错
    print("abababab".count("ab"))  # >>>4 (查找一个子字符串在大字符串中出现的次数)

    1.5.2  center,ljust,rjust,zfill

    print("cc".center(10, '*'))  # >>> ****cc**** (输出10个字符,cc置中,其他的填*号)
    print("cc".ljust(10, '*'))   # >>> cc********
    print("cc".rjust(10, '*'))   # >>> ********cc
    print("cc".zfill(10))        # >>> 00000000cc

    1.5.3  expandtab

    print("my name is cc".capitalize())  # >>> My name is cc (首字母大写)
    print("AbCd".swapcase())             # >>> aBcD          (每个字母对调大小写)
    print("my name is cc".title())       # >>> My Name Is Cc (每个首字母都大写)

    1.5.4  is数字系列

    在python3中
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    
    isdigit():用于b和u格式,即num1和num2
    isdecimal():用于u格式,即num2
    isnumberic():用于u,中文数字、罗马数字,即num2、num3、num4
    这三种都不可以判断浮点型数字

    1.5.6  is其他

    name='cc123'
    print(name.isalnum())   # >>>True  (判断字符串是否由字母或数字组成)
    print(name.isalpha())   # >>>False (字符串是否只由字母组成)

    1.6  类型总结

    字符串类型:只能存一个值;

          是有序的;

          属于不可变类型。

    二、列表及其操作

    2.1  用途

    按照位置存多个值

    2.2  定义方式

    在[ ]内用逗号分隔开多个任意类型的值

    类型转换list(传入的可以是任意能够被for循环遍历的类型)

    print(list("hello"))
    print(list(["a", 'b']))
    print(list({"k1": 11, 'K2': 222}))

    2.3  常用操作+内置的方法

    2.3.1  按索引改、取值(正向存取+反向存取):

    即可改也可以取

    超出索引范围则报错,即不能用这种赋值操作为列表增加值

    l = [111, 222]
    l[0] = 123 
    print(l)  # >>> [123, 222]

    2.3.2  切片

      顾头不顾尾,有步长

    l = [111, 222, 333, 444, 555]
    res = l[0:3]
    print(res)     # >>> [111, 222, 333]

    2.3.3  长度

    l=[111,222,333,444,555]
    print(len(l))           # >>>5

    2.3.4  成员运算in和not in

    l = [111, 222, 333, 444, 555]
    print(111 in l)        # >>> True
    print(111 not in l)    # >>> False

    2.3.5  追加

    l = [111, 222, 333, 444, 555]
    l.append(666)
    l.append(777)  
    print(l)      # >>> [111, 222, 333, 444, 555, 666, 777]

      往指定位置前插入值用 insert

    l = [111, 222, 333, 444, 555]
    l.insert(0, 123)    #(在索引0前增加一个值)
    print(l)            # >>> [123, 111, 222, 333, 444, 555]  

    2.3.6  删除

    l=[111,"aaa",222,333,444,555]
    ① del是通用的、不是列表专属的删除方式
    del l[0]
    print(l)      # >>> ['aaa', 222, 333, 444, 555]
    
    ② 列表专属的删除方式之指定元素删除
    l=[111,"aaa",222,333,444,555]
    res=l.remove("aaa")
    print(l)      # >>> [111, 222, 333, 444, 555]
    print(res)    # >>> None
    
    ③ 列表专属的删除方式之指定索引删除
    l=[111,"aaa",222,333,444,555]
    l.pop()       # 默认删除的是索引-1对应的值,return 555
    print(l)      #>>> [111, 'aaa', 222, 333, 444]

    2.3.7  循环

    l=[111,"aaa",222,333]
    for item in l:
        print(item)

    2.4  需要掌握的操作

    2.4.1  count

    l=[111,222,111,111]
    print(l.count(111))  # >>> 3

    2.4.2  排序

    l = [10, -1, 3, 2, 11, 7]
    l.sort(reverse=True)
    print(l)    # >>>[11, 10, 7, 3, 2, -1]

    2.4.3  清空

    l = [10, -1, 3, 2, 11, 7]
    l.clear()
    print(l)   # >>>[]

    2.4.4  反向重排

    l = ['a', 1, 'b', 'c']
    l.reverse()
    print(l)     # >>>['c', 'b', 1, 'a']

    2.4.5  追加

    ① extend 可以增加多个值
    l = [11, 22, 33]
    l.extend([44, 55, 66])
    print(l)    # >>>[11, 22, 33, 44, 55, 66]
    ② append 只能增加一个值
    l = [11, 22, 33]
    l.append([444, 555, 666])
    print(l)    # >>>[11, 22, 33, [444, 555, 666]]

    2.4.6  复制

    l2=l1.copy()    #  等同于 l3 = l1[:]  ,l1、l2、l3的id均不相同

    2.5  类型总结

    列表类型:可以存多个值

         有序

            可变

  • 相关阅读:
    【leetcode】剑指 Offer 07. 重建二叉树
    【leetcode】剑指 Offer 59
    【leetcode】717. 1比特与2比特字符
    【leetcode】67. 二进制求和
    【leetcode】258. 各位相加
    文件管理(高级)
    文件管理(基础)
    python之模块与类库
    python之对象与类
    python之迭代器
  • 原文地址:https://www.cnblogs.com/cui-cheng/p/13069010.html
Copyright © 2011-2022 走看看