可变序列和不可变序列
- 可变序列列和不可变序列区分的标准是是否能够对序列进行增、删、改操作;并且增删改操作后的对象地址不发生改变。能做增删改操作的序列称为可变序列。反之,不能做增删改操作的序列称为不可变序列。
- 可变序列:列表、字典、集合
- 不可变序列:字符串、数值、元组、布尔
可迭代对象和不可迭代对象
Iterable
对象,就是可迭代对象,即可以用for...in...
进行遍历的对象,就叫可迭代对象。- 一个对象如果实现了
__iter__
方法,那么我们称这个对象是可迭代对象。 - 字符串、元组、列表、字典、集合属于可迭代对象。
- 数值、布尔、空值属于不可迭代对象
字符串
定义:
1.以单引号、双引号、三引号括起来的文本
2.可迭代对象
# 单引号
str1 = '这是单引号的字符串'
# 双引号
str2 = "这是双引号的字符串"
# 三引号
str3 = """这是三引号的字符串"""
# 字符串换行
str3 = """
只有三引号的字符串,
才能换行使用。
"""
字符串的内置方法
capitalize():将字符串的第一个字符变为大写字母,其他字符变为小写字母。
casefold():返回字符串的一个副本,其中所有字符均转换为小写字母。
center(width, fillchar):返回一个指定宽度的居中对齐的字符串。
count(substring, start, end):返回指定子字符串在字符串中出现的次数。
encode(encoding='UTF-8',errors='strict'):将字符串编码为指定的编码格式。
endswith(suffix, start, end):检查字符串是否以指定的后缀字符串结束,如果是,则返回 True,否则返回 False。
expandtabs(tabsize):将字符串中的 tab 符号(\t)替换为空格,并指定 tab 的长度。
find(substring, start, end):搜索字符串中指定的子字符串,并返回第一次出现的索引值,如果没有找到,则返回-1。
format(*args, **kwargs):将一个格式化字符串插入到当前字符串中。
index(substring, start, end):检查字符串中是否包含指定的子字符串,如果包含,则返回子字符串第一次出现的索引值,否则会引发 ValueError。
isalnum():检查字符串是否全部由字母和数字组成,如果是,则返回 True,否则返回 False。
isalpha():检查字符串是否全部由字母组成,如果是,则返回 True,否则返回 False。
isdecimal():检查字符串是否全部由数字组成,如果是,则返回 True,否则返回 False。
isdigit():检查字符串是否全部由数字组成,如果是,则返回 True,否则返回 False。
islower():检查字符串中的所有字符是否都是小写字母,如果是,则返回 True,否则返回 False。
isupper():检查字符串中的所有字符是否都是大写字母,如果是,则返回 True,否则返回 False。
istitle():检查字符串中的所有单词是否都以大写字母开头并以小写字母结尾,如果是,则返回 True,否则返回 False。
isnumeric():检查字符串是否全部由数字组成,如果是,则返回 True,否则返回 False。
join(iterable):将给定的可迭代对象中的所有元素连接成一个字符串。
ljust(width, fillchar):返回一个指定宽度的左对齐的字符串。
lower():将字符串中的所有字符转换为小写字母。
upper():将字符串中的所有字符转换为大写字母。
partition(separator):将字符串分割为两个部分,返回一个包含分隔符的元组。
replace(old, new, count):将指定的子字符串替换为新的字符串。
rfind(substring, start, end):从右侧开始搜索字符串中指定的子字符串,并返回第一次出现的索引值,如果没有找到,则返回-1。
rindex(substring, start, end):从右侧开始搜索字符串中是否包含指定的子字符串,如果包含,则返回子字符串第一次出现的索引值,否则会引发 ValueError。
rjust(width, fillchar):返回一个指定宽度的右对齐的字符串。
rpartition(separator):将字符串分割为两个部分,返回一个包含分隔符的元组(从右侧开始分割)。
rsplit(separator, maxsplit):使用指定的分隔符从字符串的右侧开始拆分字符串,并返回一个列表。
split(separator, maxsplit):拆分字符创,并返回一个列表。
splitlines(keepends):按行分割字符串,并返回一个列表。
startswith(prefix, start, end):检查字符串是否以指定的前缀字符串开始,如果是,则返回 True,否则返回 False。
strip(characters):从字符串的两端删除指定的字符,如果未指定字符,则默认删除空格字符。
lstrip(characters):从字符串的左侧删除指定的字符,如果未指定字符,则默认删除空格字符。
rstrip(characters):从字符串的右侧删除指定的字符,如果未指定字符,则默认删除空格字符。
swapcase():将字符串中大写字母转换为小写字母,将小写字母转换为大写字母。
title():将字符串中的每个单词的首字母大写,并将所有其他字符转换为小写字母。
translate(table):使用给定的翻译表将字符串中的字符替换为其他字符。
zfill(width):返回一个指定宽度的字符串,并在字符串的左侧填充零。
数值
定义:
1.整型(可以为任意大小的整数)、浮点型(任意大小的小数)
2.不可迭代对象
# 整型
int1 = 1
int2 = -1
# 浮点型
float1 = 0.1
float2 = -0.1
数值的内置方法
abs(x):返回x的绝对值
round(x, n):对x保留n位小数并四舍五入
divmod(x, y):返回x除以y的商和余数
pow(x, y):返回x的y次方
max(iterable):返回可迭代对象中的最大值
min(iterable):返回可迭代对象中的最小值
sum(iterable):返回可迭代对象中所有元素的和
sorted(iterable):返回可迭代对象的排序列表
元组
定义:
1.有序的、不可变的、允许数据重复
2.可以存储任意类型的多个数据,但是不能修改
3.可迭代对象
元组的内置方法:
count(value):返回元素value在元组中出现的次数。
index(value, start=0, end=len(tuple)):返回元素value在元组中第一次出现的下标。如果指定了start和end,则在指定的范围内查找。
创建元组:
# 空元组
tuple1 = ()
# 只包含一个元素的元组,需要的元素后面添加逗号
tuple2 = (1,)
# 多个元素的元组
tuple3 = ('a', 1, (1,), True, [1, 3], {"a": 123})
# 无括号的元组
tuple4 = 'a', 1, (1,), True, [1, 3], {"a": 123}
>>> ('a', 1, (1,), True, [1, 3], {"a": 123})
索引[ ]:根据索引查询元组中的元素(元组取值)。元组索引从0开始
tuple1 = (100, 'hello world', 3.14)
tuple_value = tuple1[0]
>>> 100
count:用于统计指定元素在列表中出现的次数
tuple1 = (100, 'hello world', 3.14, 'hello world')
# 查询指定元素,在元组中的个数
tuple1.count('hello world')
>>> 2
index:返回元素value在元组中第一次出现的下标。如果指定了start和end,则在指定的范围内查找。
语法:index(value, start=0, end=len(tuple))
tuple1 = (100, 'hello world', 3.14, 'hello world')
tuple1.index("hello world")
>>> 1
解包:
什么是元组解包?元组解包也叫‘元组拆包’,‘迭代对象解包’ 等。也就是把批量的数据进行批量的赋值。当然不只是tuple,任何可迭代对象都支持解包,还包括dict、set、s