序列类型
包括列表、元组和范围(range)以及字符串,序列类型的对象有一些共同的操作,如操作符运算、切片操作等。
1. list类型与操作
1.1 玩转索引
列表(list)
类型的对象可以通过 list()
函数来创建。如果list()
函数没有传入参数,则创建一个空列表。
In [1]:L1=1izt([123, 23, [4,5,6], 'abe'))
In [2]:L1
0ut[[2]:[123, 23, [4,5,6], 'abe']
操作 | 返回值 |
---|---|
x in s | 如果元素x在序列s中,返回值为True,否则,为False |
x not in s | 如果元素x不在序列s中,返回值为False,否则,为True |
s+t | 序列s和序列t的链接,前提是序列的数据类型(type)相同 |
sn or ns | 序列s中的元素整体重复n次,形成一个新的序列 |
s[i] | 返回序列s中索引值为i的元素值;s第一个索引值为0 |
S[i:j] | 返回序列s索引值为i到j的切片,不包括s[j] |
s[i:j:k] | 返回s索引序列的切片,索引序列为以k为步长,起始值为i,结束值为j |
len(s) | 返回s序列的所占字符长度 |
min(s | 返回序列s中的最小值 |
max(s) | 返回序列s中的最大值 |
s.index(x[,i[,j] | 返回x在序列s或者切片s[i:j]中第一次出现的索引值 |
s.count(x) | 返回序列s中,元素x 出现的次数 |
列表是可变对象,列表中元素及其元素的个数允许被更改,可以增加、插入或者删除列表中的元素
1.2 常规方法
列表是可变对象,列表中元素及其元素的个数允许被更改,可以增加、插入和删除。
1.2.1 增
操作 | 方法 |
---|---|
append | list.append("单个元素") |
+/+= | list1+list2 或 list += list2 |
extend | list.extend("可迭代对象") |
1.2.2 删
操作 | 方法 | 说明 |
---|---|---|
pop | list.pop("指定索引") | 删除指定索引位置的元素并返回删除值,默认删除列表最右端元素 |
remove | list1.remove("指定元素") | 如果指定元素在列表则删除最左端(第一次)出现的元素,否则抛出ValueError |
在实际使用
remove()
方法的时候,往往先使用count(x)
函数来统计列表中指定元素的个数,如果count(x)
返回值为0则不需要再进行删除
1.2.3方法汇总
方法名称 | 功能 |
---|---|
List1.append(x) | 增加一个元素,在列表List1的末尾段增加一个元素x |
List1.extend(w) | 增加多个元素,w是可迭代对象,将y中的元素都增加到List1末尾处 |
List1.insert(i,x) | 在列表List1的索引值为i处插入元素x |
List1.pop() | 删除列表List1中末尾处的元素,并打印出该元素值 |
List1.pop(i) | i为整型数据,删除并打印出列表List1索引值为i的元素值 |
List1.count(x) | 返回列表List1中元素x出现的个数 |
List1.remove(x) | 若元素x位于列表List1中,输出x在列表出现的最左端那个值;否则,有ValueError |
List1.sort() | 对列表List1中的元素升序排列,前提是List1中的元素是有顺序性的 |
List1.reverse() | 对列表List1 中的元素降序排列,前提是List1 中的元素是有顺序性的 |
List1.index(x,start,end) | 返回列表List1或者列表切片ListIstart:end]中元素x出现位置最左边的索引值 |
2. tuple类型与操作
元组(tuple)
数据也属于序列类型数据,但其具有不可变的性质,可以通过函数tuple()
、"逗号(,)
"以及"小括号( )
"创建一个元组对象。当然也可以通过tuple()
方法将list类型更改为tuple类型
- 举个栗子
In[1]:tu1 = tuple((123,45,6,7,8,'python')
In[2]:type(tu1)
Out[2]:tuple
In[3]:tu1
Out[3]:(123,45,6,7,8,'python ')
同样的,元组也是序列类型的数据,所以也同样具有和list类似的索引切片方式,方法参照list,不再一一列举。
3. range类型与操作
range()
函数可以生成一个等间隔的整数序列,具有不可变的性质,可以直接通过range()
方法生成。
- 参数配置
只传入一个参数时,表示生成一个初始值为0、间隔为1,终止值为stop-1的等差序列
range(stop)
第一个参敷为初触值.第二个参数为终止参照值,第三个参数step表示步长
range(start,stop,step)
将range()
传入可迭代对象生成对应的类型数据,此处以list为例,生成含有从1到10的奇数的列表
In[1]: list = range(1, 10, 2)
list
out[1]: range(1, 10, 2)
4. 字符串类型与操作
字符串生成函数
str()
用于创建一个字符串对象,该函数也会把其他类型的数据转变成字符串对象。
4.1基础方法汇总
操作方法 | 功能 |
---|---|
len() | 求字符串长度 |
+ | 拼接字符串 |
"'设置的连接符'".join("可迭代对象") | 用设置的连接符链接可迭代对象中的每一个元素,返回结果为字符串 |
"字符串对象".split(sep="'分割识别符'", maxsplit=1) | 以指定的分割识别符最多分割 maxsplit次字符串,返回结果为列表 |
str.islower() | 如果字符串对象str中的所有字符均为小写字母,返回True;否则,返回值为False. |
str.isupper() | 如果字符串对象str中的所有字符均为大写字母,返回True;否则,返回值为 False。 |
str.lower() | 将字符串对象str中的所有字符转变成小写字母。 |
str.upper() | 将字符串对象str中的所有字符转变成大写字母。 |
str.istitle() | 如果字符串对象str中无空格的连续字符的首字母均大写,其余部分均小写,则返回值为True;否则,返回值为False. |
str.title() | 将字符串对象str 无空格的连续字符转变成首字母大写,其余部分均小写的形式 |
str.capitalize() | 将字符串对象str的首字母大写,其余部分均小写 |
str.swapcase() | 将字符串中的字母大小写调换,原本大写转变成小写,原本小写转变成大写。 |
str.find(x) | 返回字符串x出现在字符串对象str 中的最左边位置;如果x不在str对象中,返回值为-1. |
str.index(x) | 返回字符串x出现在字符串对象str中的最左边位置;如果x不在str对象中,会报错. |
str.rfind(x) | 返回字符串x出现在字符串对象str中的最右边位置;如果x不在str对象中,返回值为-1。 |
str.rindex(x) | 返回字符串x出现在字符串对象str中的最右边位置;如果x不在str对象中,会报错。 |
str.startswith(x) | 参数x为字符串或者元组,如果对象str以x或者x元组中的某一个元素开头,则返回True,否则返回False. |
str.endswith() | 参数x为字符串或者元组,如果对象str以x或者x元组中的某一个元素结束,则返回True,否则返回False. |
str.strip(chars) | 删去对象str开始和结束处与参数字符chars 相同的部分 |
str.rstrip(chars) | 删去对象str 结尾处与参数字符chars 相同的部分 |
5. 字典类型与操作
字典类型对象不是按照序列的方式存储数值,而是将值映射给一个键,通过索引字典中的键来提取相对应的值。若要创建一个字典对象,有两种方法可以使用。一是通过花括号{}创建,另一种方法是通过字典类的构造函数
dict()
来实现。
操作方法 | 功能 |
---|---|
dict.items() | 返回所有键值对 |
dict.kyes() | 返回所有键 |
dict.values() | 返回所有值 |
dict["键名"].get() | 获取”键名“的值 |
dict.update("key1"="value1") | 更新字典对象中键的取值 |
dict["原字典中不存在的键"]="value" | 增加新的元素 |
del dict["键名"] | 删除指定的键 |
clear() | 清空字典中所有的内容并返回 |
6. 集合操作
python中的集合类型有两种,一种是
set
,是可变的数据类型,另外一种是frozenset
,该数据类型不可变。
6.1 常规操作
集合常用于列表去重,对于set
数据类型添加元素可以使用add()
方法,删除元素可以使用remove()
方法。(frozen类型的对象无法修改)
6.2 集合的运算
集合的运算不仅适用于两个集合之间,三个及三个以上的集合也适用
调用方法(method) | 操作符运算 | 运算含义 |
---|---|---|
set1.union(set2) | set|set2 | 集合set1与set2作并运算 |
set1.intersection(set2) | set1 & set2 | 集合set1与set2作交运算 |
set1.difference(set2) | set1 - set2 | 集合差运算,删去集合set1中与set2相同的元素 |
set1.symmetric_difference(set2) | set1^set2 | 集合对称差运算,返回集合set1与set2 中除了两集合共有元素以外的所有元素 |
set1.issubset(set2) | set1<= set2 | 如果集合set1为集合set2 的子集,则返回True;否则,返回False |
set1.issuperset(set2) | set1>=set2 | 如果集合set2为集合set1的子集,则返回True;否则,返回False |
set1.isdisjoint(set2) | 如果集合 set2和set1无交集,则返回True,否则返回 False |