python基础——字符串 列表 元组 字典
字符串
字符串介绍:双引号或者单引号中的数据,就是字符串
下标和切片
-
所谓“下标”,就是编号
-
切片的语法:[起始:结束:步长]
- 注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。
字符串常见操作
查找
- find: 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
例子: mystr.find(str, start=0, end=len(mystr)) - index: 跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
例子: mystr.index(str, start=0, end=len(mystr)) - count: 返回 str在start和end之间 在 mystr里面出现的次数
例子: mystr.count(str, start=0, end=len(mystr)) - isdigit: 如果 mystr 只包含数字则返回 True 否则返回 False
例子: mystr.isdigit() - isalpha: 如果 mystr 所有字符都是字母 则返回 True,否则返回 False
例子: mystr.isalpha() - islower: 判断字符串中(英文字符)是否为纯小写
例子: str7.islower() - isupper: 判断字符串中(英文字符)是否为纯大写
例子: str7.isupper() - endswith: 判断字符串结束位置字符是否是指定字符
例子:str6.endswith(‘ba’) - **startwith:**检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
例子: mystr.startswith(hello)
删除
- replace: 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
例子: mystr.replace(str1, str2, mystr.count(str1))
修改
- split: 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
例子: mystr.split(str=" ", 2) - lstrip: 删除 mystr 左边的空白字符
例子: mystr.lstrip() - rstrip: 删除 mystr 字符串末尾的空白字符
例子: mystr.rstrip() - strip: 删除mystr字符串两端的空白字符
例子: mystr.strip() - capitalize: 把字符串的第一个字符大写
例子: mystr.capitalize() - title: 把字符串的每个单词首字母大写
例子: str18.title() - **lower:**转换 mystr 中所有大写字符为小写
例子: mystr.lower() - upper: 转换 mystr 中的小写字母为大写
例子: mystr.upper()
其他操作
- ljust: 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
例子: mystr.ljust(width) - rjust: 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
例子: mystr.rjust(width) - center: 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
例子: mystr.center(width) - rfind: 类似于 find()函数,不过是从右边开始查找.
例子: mystr.rfind(str, start=0,end=len(mystr) ) - rindex: 类似于 index(),不过是从右边开始
例子: mystr.rindex( str, start=0,end=len(mystr)) - partition: 把mystr以str分割成三部分,str前,str和str后
例子: mystr.partition(str) - rpartition: 类似于 partition()函数,不过是从右边开始
例子: mystr.rpartition(str) - splitlines: 按照行分隔,返回一个包含各行作为元素的列表
例子: mystr.splitlines() - isalnum: 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
例子: mystr.isalnum() - isspace: 如果 mystr 中只包含空格,则返回 True,否则返回 False.
例子 mystr.isspace()
字符串拼接
-
拼接符: +
-
例子:splicing = str_1 + str_2
-
占位符:%s
例子: ‘%s今年%s岁’ % (‘小明’, str_3) -
join: mystr 中每个元素后面插入str,构造出一个新的字符串
例子: mystr.join(str) -
format:
- 默认位置 1对1
例子: ‘{}{}很{}’.format(str_6, str_5, str_4) - 根据下标位置
例子: ‘{0}{2}很{1}’.format(str_6, str_4, str_5) - 重新命名,内部指定
例子:‘{n1}{n3}很{n2}’.format(n1=str_6, n2=str_4, n3=str_5) - python3优化的: 通过f申明,配合{}进行直接指定插入
例子: f’{str_6}{str_4}很{str_5}’
- 默认位置 1对1
列表
列表的格式: namesList = [‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]
-
列表的循环遍历
-
使用for循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
print(name)
- 使用while循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
length = len(namesList)
i = 0
while i<length:
print(namesList[i])
i+=1
列表的相关操作
增加
- append: 通过append可以向列表结尾添加元素
- 语法:列表序列.append(数据)
- extend: 通过extend可以将另一个集合中的元素逐一添加到列表中
- 语法:列列表序列列.extend(数据)
- 单个数据:name_list.extend(‘xiaoming’)
结果: [‘Tom’, ‘Lily’, ‘Rose’, ‘x’, ‘i’, ‘a’, ‘o’, ‘m’, ‘i’, ‘n’, ‘g’] - 多个数据:name_list.extend([‘xiaoming’, ‘xiaohong’])
结果: [‘Tom’, ‘Lily’, ‘Rose’, ‘xiaoming’, ‘xiaohong’]
- 单个数据:name_list.extend(‘xiaoming’)
- 语法:列列表序列列.extend(数据)
- insert: insert(index, object) 在指定位置index前插入元素object
- 语法:列表序列.insert(位置下标, 数据)
删除
- del: 根据下标进行删除
- 语法:del ⽬目标
- pop: 删除最后一个元素
- 语法:列表序列.pop(下标)
- remove: 根据元素的值进行删除
- 语法:列表序列.remove(数据)
- clear(): 清空列列表
- 语法:列表序列.clear(数据)
查找
- in(存在),如果存在那么结果为true,否则为false
- not in(不存在),如果不存在那么结果为true,否则false
- index, count
- index和count与字符串中的用法相同
修改
- 修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
排序
- sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小
- 语法:列列表序列列.sort( key=None, reverse=False)【True 降序,False 升序(默认)】
- reverse方法是将list逆置
例子:num_list.reverse()
列表的嵌套
- 类似while循环的嵌套,列表也是支持嵌套的
- 一个列表中的元素又是一个列表,那么这就是列表的嵌套
schoolNames = [[‘北京大学’,‘清华大学’], [‘南开大学’,‘天津大学’,‘天津师范大学’],[‘山东大学’,‘中国海洋大学’]]
元组
元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不不同的数据类型
元组的常见操作
查找
-
index():查找某个数据,数据存在返回对应的下标,否则报错,语法和列表、字符串的index
方法相同。 -
count():统计某个数据在当前元组出现的次数。
-
len():统计元组中数据的个数。
-
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号
-
访问元组:使用下标
-
修改元组:使用下标(在元组内部有可变类型比如列表),或者转换为列表
-
元组的内置函数count, index
- index和count与字符串和列表中的用法相同