【python】高级变量类型——字符串、字典
一、字符串
1. 定义
- 在 python 中使用一对双引号 " ,或者一对单引号 ' 定义一个字符串
- 可以使用 \" 或者 \' 做字符串的转义,但实际中,如果字符串内部需要使用 ",常使用 ' 定义字符串,反之亦然。
2. 常用方法
序号 | 分类 | 关键字/函数/方法 | 说明 |
1 | 判断类型 | string.isspace() | 如果 string 中只包含空格,则返回 True |
string.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True | ||
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True | ||
string.isdecimal() | 如果 string 只包含数字则返回 True,全角数字 | ||
string.isdigit() | 如果 string 只包含数字则返回 True,全角数字、⑴、\u00b2 | ||
string.isnumeric() | 如果 string 只包含数字则返回 True,全角数字,汉字数字 | ||
string.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回 True | ||
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True | ||
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True | ||
2 | 查找与替换 | string.startswith(str) | 检查字符串是否是以 str 开头,是则返回 True |
string.endswith(str) | 检查字符串是否是以 str 结束,是则返回 True | ||
string.find(str, start=0, end=len(string)) | 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1 | ||
string.rfind(str, start=0, end=len(string)) | 类似于 find(),不过是从右边开始查找 | ||
string.index(str, start=0, end=len(string)) | 跟 find() 方法类似,不过如果 str 不在 string 会报错 | ||
string.rindex(str, start=0, end=len(string)) | 类似于 index(),不过是从右边开始 | ||
string.replace(old_str, new_str, num=string.count(old)) | 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次 | ||
3 | 大小写转换 | string.capitalize() | 把字符串的第一个字符大写 |
string.title() | 把字符串的每个单词首字母大写 | ||
string.lower() | 转换 string 中所有大写字符为小写 | ||
string.upper() | 转换 string 中的小写字母为大写 | ||
string.swapcase() | 翻转 string 中的大小写 | ||
4 | 文本对齐 | string.ljust(width) | 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
string.rjust(width) | 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 | ||
string.center(width) | 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 | ||
5 | 去除空白 | string.lstrip() | 截掉 string 左边(开始)的空白字符 |
string.rstrip() | 截掉 string 右边(末尾)的空白字符 | ||
string.strip() | 截掉 string 左右两边的空白字符 | ||
6 | 拆分和连接 | string.partition(str) | 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面) |
string.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 | ||
string.split(str="", num) | 使用str作为分隔符(如果未指定则使用空格分割),可选 num 限制拆分数量。 | ||
string.splitlines() | 按照行('\r', '\n', '\r\n')分隔,返回一个包含各行作为元素的列表 | ||
string.join(seq) | 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
3. 切片
- 切片方法适用于 字符串、列表、元组,不适用于字典
字符串[开始索引:结束索引:步长]
注意:
- 切片区间【】 属于左闭右开型,从起始位开始,到结束位的前一位结束。
- 从头开始,开始索引数字可以省略,冒号不能省略。
- 到末尾结束,结束索引数字可以省略,冒号不能省略。
- 步长默认是1,如果连续切片,数字和冒号都可以省略。
倒序切片:最末尾的索引值为-1,向左依次递减。
二、字典
- 值可以取任何类型,但键只能使用字符串、数字或元组
1. 字典的定义
字典是 Python 中唯一的内置映射类型
字典以类似于下面的方式表示:
phonebook = {'Alice':'1234','Beth':'4567'}
可以使用函数 dict 从其他映射或键-值对序列创建字典。(与list、tuple 和 str 一样,dict 不是函数,而是一个类)
items = [('name','Alice'),('age','16')] d = dict(items) d Out:{'age':16, 'name','Alice'}
2. 基本的字典操作
- len(dict),返回字典 d 包含的项数
- d[k],返回与键 k 相关联的值
- d[k] = v, 将值 value 关联到键 k
- del d[k], 删除键为 k 的项
- k in d, 检查字典 d 是否包含键为 k 的项
3. 内置方法
dict.clear() #删除字典内所有元素 dict.copy() #返回一个字典的浅复制 dict.fromkeys() #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 dict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值 dict.has_key(key) #如果键在字典dict里返回true,否则返回false dict.items() #以列表返回可遍历的(键, 值) 元组数组 dict.keys() #以列表返回一个字典所有的键 dict.setdefault(key, default=None) #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default dict.update(dict2) #把字典dict2的键/值对更新到dict里
dict.values() #以列表返回字典中的所有值