栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础内容(四、组合数据类型之集合和字符串)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础内容(四、组合数据类型之集合和字符串)

文章目录
      • 集合
        • 添加元素
        • 删除元素
        • 集合间的关系
        • 集合间的数据操作
        • 集合生成式
      • 字符串
        • 驻留机制
        • 转换字符串
        • 查找字符串
        • 对齐字符串
        • 分割和连接字符串
        • 判断字符串
        • 比较字符串

集合

可变序列,哈希存储,型似没有值的字典,集合里的值不允许重复

  • 创建集合

    • set_demo1 = {值1,值2…}

    • set_demo2 = set()

    • 空集合只能用set()定义

添加元素
  • add()

    一次添加一个元素

  • update()

    一次至少添加一个元素

    set_demo = {1, 2, 3}
    set_demo.update({4, 5, 6})
    print(set_demo)
    # {1, 2, 3, 4, 5, 6}
    
删除元素
  • remove()

    删除指定元素,不存在则抛出异常

  • discard()

    删除指定元素,不存在也不抛出异常

  • pop()

    删除任意一个元素,不可添加参数

  • clear()

    清空集合

集合间的关系
  • 集合是否相等:==

  • issubset()

    B是A的子集:B.issubset(A);是True/不是False

  • issuperset()

    A是B的超集:A.issuperset(B);是True/不是False

  • isdisjoint()

    A和B是否没有交集:A.isdisjoint(B);有False/没有True

集合间的数据操作
  • 交集:& / interesection()
  • 并集:| / union()
  • 差集:- / difference()
  • 对称差集:^ / symmetric_difference()
集合生成式

set_demo = {表达式 for i in range(范围)【if 条件】}


字符串

不可变的字符序列

  • 字符串切片操作:语法格式:[start:end:step]

    • start:切片开始的索引(默认从0开始)

    • end:切片结束的索引(不包含end)(默认字符串长度)

    • step:步长,默认为1;步长为负数,表示从右向左切片;

    切片结果产生了新的字符串对象

  • 字符编码:

    • encode():编码
    • decode():解码
    str_demo = '努力学习的小白P'
    
    # 编码
    print(str_demo.encode(encoding='GBK'))	# 一个汉字占两个字节
    print(str_demo.encode(encoding='UTF-8'))	# 一个汉字占三个字节
    # b'xc5xacxc1xa6xd1xa7xcfxb0xb5xc4xd0xa1xb0xd7P'
    # b'xe5x8axaaxe5x8ax9bxe5xadxa6xe4xb9xa0xe7x9ax84xe5xb0x8fxe7x99xbdP'
    
    # 解码
    str_byte1 = str_demo.encode(encoding='GBK')
    str_byte2 = str_demo.encode(encoding='utf-8')
    print(str_byte1.decode(encoding='GBK'))
    print(str_byte2.decode(encoding='UTF-8'))
    # 努力学习的小白P
    # 努力学习的小白P
    
驻留机制

仅保存一份相同且不可变字符串的方法,后续创建相同字符串时,不会开辟新的空间,而是把该字符串的的地址赋给新创建的变量;

驻留的几种情况(交互模式):

  • 字符串的长度为0或1时;
  • 符合标识符的字符串(含有“_”);
  • 字符串只有在编译时进行驻留,而非运行时;
  • [-5,256]之间的整数数字

sys中的intern方法强制两个字符串指向同一个对象

注意:PyCharm对字符串进行了优化处理,id一样

转换字符串
  • lower()

    转换为字符串的小写形式

  • upper()

    转换为字符串的大写形式

  • replace(old,new[,max])

    返回一个新的字符串,将字符串中的old替换为new;替换不超过max次

str_demo1 = 'My name is 三笠'
str_demo3 = ""","""
str_demo2 = "What is your name?"
str_demo = str_demo1+str_demo3+str_demo2
print(str_demo)
#My name is 三笠,What is your name?
print(str_demo.replace('三笠', '努力学习的小白P'))
#My name is 努力学习的小白P,What is your name?
  • capitalize()

    将第一个字符转为大写,把其余字符转换为小写

    str_demo = "I just love study"
    print(str_demo.capitalize())
    # I just love study
    
  • swapcase()

    将字符串所有大写字母转成小写字母,把所有小写字母都转成大写字母

  • title()

    把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写

查找字符串
  • **find(x) / rfind(x) **

    在字符串中查看子串x第一次(最后一次)出现的位置,如果不存在,则返回-1;

str_demo = 'My name is 三笠,What is your name?'
print(str_demo.find('三笠'))
#11 
  • index()/ rindex()

    在字符串中查找子串第一次(最后一次)出现的位置,如果不存在,则抛出异常

对齐字符串
  • center(参数1,参数2)

    • 居中对齐;参数1指定宽度;参数2指定填充字符(可选),默认空格;

    • 如果设置宽度小于字符串实际宽度,则返回原字符串

  • ljust(参数1,参数2)

    • 左对齐;参数1指定宽度;参数2指定填充字符(可选),默认空格;
    • 如果设置宽度小于字符串实际宽度,则返回原字符串
  • rjust(参数1,参数2)

    • 右对齐;参数1指定宽度;参数2指定填充字符(可选),默认空格;
    • 如果设置宽度小于字符串实际宽度,则返回原字符串
  • zfill()

    • 右对齐;左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定宽度小于等于字符串长度,返回字符串本身
    str_demo1 = '-864'
    str_demo2 = str_demo1.zfill(8)
    print(str_demo2)	# -0000864
    
分割和连接字符串
  • strip(x)

    用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列;

str_demo = "123努力学习的小白P321"
print (str_demo.strip('123'))
#努力学习的小白P
  • ‘x’,join(str)

    将元组和列表中的字符串str以指定的字符x(分隔符)连接成一个新的字符串

str_demo = "-"
str_demo2 = ("努力学习的小白P")
print(str_demo.join(str_demo2))
#努-力-学-习-的-小-白-P
  • split(sep[,num])/ rsplit(sep[,num])

    通过指定分隔符sep(默认为空格)对字符串从左(从右)进行切分;num指定切分次数;返回值类型为列表

str_demo = "努 力 学 习 的 小 白 P"
print(str_demo.split(' ', 3))
#['努', '力', '学', '习 的 小 白 P']
判断字符串
  • isidentifier()

    判断指定的字符串是不是合法的标识符(字母、数字、汉字、下划线);

  • isspace()

    判断指定的字符串是不是是否由全部由空白字符组成(回车、换行、水平制表符);

  • isalpha()

    判断指定的字符串是否全部由字母组成;

  • isdecimal()

    判断指定的字符串是否全部由十进制的数字组成;

  • isnumeric()

    判断指定的字符串是否全部由数字组成;

  • isalnum()

    判断指定的字符串是否全部由字母和数字组成;

比较字符串

依次比较字符的ascll值

  • ord():返回指定字符的ascll;

  • chr():返回指定ascll的字符;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号