一、组合数据类型container objects
组合数据类型container objects:能够表示多个数据的类型
集合类型:集合类型是一个元素集合,元素无序不重不变
序列类型:序列类型是一个元素向量,元素有序可重可变可不变。序列类型的典型代表是列表类型、元组类型、字符串类型(但元组一旦定义,元素就不能变了)
映射类型:映射类型是“键-值”数据项的组合,元素无序不重键不可变值可变可不变,每个元素是一个键值对。映射类型的典型代表是字典类型
集合类型是一个具体的数据类型名称,而序列类型和映射类型是一类数据类型的总称。
不可变数据类型:immutable,如数字、元组、字符串
可变数据类型:mutable,如列表、集合、字典
可迭代对象:iterable,如range()、序列(列表元组字符串)、集合、字典、文件,generator
不可迭代对象:如数字
很多函数的参数以及返回值都是iterable:map(), filter() ,zip() ,range(), dict.keys(), dict.items() 和 dict.values()
二、字符串Python tutorial
从九个方面展开:基,建,增,删,改,查,操,切,复
(一)基:基本概念
字符串:字符的序列sequence
字符串类名:str
(二)建:创建、定义
1、通过一对单引号、一对双引号创建字符串
2、通过三对单引号、三对双引号创建字符串
3、转义符“\”
4、通过str()创建字符串
(三)改、删
字符串是immutable的,一旦创建就不能被更改。
变相修改:(实际上,这不是改,而是新建了一个新的字符串)
这里,通过id()查看变量的内存地址,可以看到变量的值和变量引用的内存地址的区别。s1,s4,同一个字符串,在内存中只有一份
Python中:
- 不可变数据类型:immutable,如数字、元组、字符串
- 可变数据类型:mutable,如列表、集合、字典
- 可以使用id()的进行查看(id()用来返回数据的内存地址)
- 可变和不可变说的是变量的值和变量引用的内存地址
- 不可变数据类型,变量值变化,变量引用地址就会变化,即该地址的值不变
- 可变数据类型,变量值变化,变量引用地址不变,即该地址的值可变
(四)查
1、正向递增序号(0 ~ n-1),反向递减序号(-1 ~ -n)
2、索引查单个,序号超出范围会报错IndexError
3、切片查多个,序号超出范围,取实际长度
4、查询子串是否存在、在不在,in,not in。 (这个在所有组合数据类型中都有)
5、查询identity是否是,is, is not
6、查询以XX开头、结尾
7、查询序号
str.index(object[, start, end])返回一个int,默认从序号0开始查
8、查询子串出现次数
str.count(sub,start,end),返回一个int,默认从序号0开始查找,包含start本身
9、正则表达式查找
略。
(五)操,字符串操作
1、格式化输出,可以用str.format()
2、格式化拆分
str.split(sep)返回一个列表,sep可以是单个或多个字符,无sep默认以空格拆分
注意返回的列表不含拆分字符sep
3、合并字符串
str.join(iterable),返回一个字符串。将iterable变量除最后一个元素外的每一个元素后增加一个str字符
4、大小写
str.title(),把str每个首字母大写,每个非首字母小写
str.capitalize(),把str最开头的字母大写,其余全部小写
str.upper()和str.lower()是全部大小写,返回一个新str,原str不变
str.swapcase(),把大的变小的,把小的变大的
str.isupper(), str.islower()
5、去掉左/右边的内容
str.strip(chars),去掉左边和右边的chars,返回一个str
str.lstrip(chars), str.rstrip(chars)去掉左边或右边的chars,返回一个str
6、加乘法,返回一个str
7、替换
str.replace(old,new),返回一个str
8、比较
从左往右一个一个比较,如果一边完了,另一边还有,还剩的大
按ASCII码值,ord()可以把单字符转换成ASCII,小写字母大于大写字母
>>> help(str)
Help on class str in module builtins:
class str(object)
| str(object='') -> str
| str(bytes_or_buffer[, encoding[, errors]]) -> str
|
| Create a new string object from the given object. If encoding or
| errors is specified, then the object must expose a data buffer
| that will be decoded using the given encoding and error handler.
| Otherwise, returns the result of object.__str__() (if defined)
| or repr(object).
| encoding defaults to sys.getdefaultencoding().
| errors defaults to 'strict'.
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
| __contains__(self, key, /)
| Return key in self.
|
| __eq__(self, value, /)
| Return self==value.
|
| __format__(self, format_spec, /)
| Return a formatted version of the string as described by format_spec.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __getitem__(self, key, /)
| Return self[key].
|
| __getnewargs__(...)
|
| __gt__(self, value, /)
| Return self>value.
|
| __hash__(self, /)
| Return hash(self).
|
| __iter__(self, /)
| Implement iter(self).
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)