最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python序列类型有哪些

来源:动视网 责编:小采 时间:2020-11-27 14:08:33
文档

python序列类型有哪些

python序列类型有哪些:python序列类型有哪些?在Python中什么才是序列类型,通过本文来详细了解。序列:字符、列表、元组所有序列都支持迭代序列表示索引为非负整数的有序对象集合字符和元组属于不可变序列,列表可变 1)字符字符串字面量:把文本放入单引号、双引号或三引号中; &
推荐度:
导读python序列类型有哪些:python序列类型有哪些?在Python中什么才是序列类型,通过本文来详细了解。序列:字符、列表、元组所有序列都支持迭代序列表示索引为非负整数的有序对象集合字符和元组属于不可变序列,列表可变 1)字符字符串字面量:把文本放入单引号、双引号或三引号中; &
 python序列类型有哪些?在Python中什么才是序列类型,通过本文来详细了解。

序列:字符、列表、元组

所有序列都支持迭代

序列表示索引为非负整数的有序对象集合

字符和元组属于不可变序列,列表可变

1)字符

字符串字面量:把文本放入单引号、双引号或三引号中;

 ' '' '''
 >>> str1 = ' hello, fanison '
 >>> type(str1)
 str

如果要使用unicode编码,则在字符之前使用字符u进行标识

 >>> str2 = u'你好,fanison'
 >>> type(str2)
 unicode

文档字串:模块、类或函数的第一条语句是一个字符的话,该 字符串就成为文档字符串,可以使用__doc__属性引用;

例:

 >>> def printName():
 "the function is print hello"
 print 'hello'
 >>> printName.__doc__

运算符:

索引运算符 s[i] 返回一个序列的元素i

切片运算符 s[i:j] 返回一个切片

扩展切片运算符 s[i:j:stride]

例:

 >>> str3 = 'hello,fanison'
 >>> str2[0:]
 'hello,fanison' 返回所有元素
 >>> str2[0:7]
 'hello,f' 返回索引7之前的所有元素
 >>> str2[0:7:2]
 'hlof' 返回从索引0到6内步径为2的元素,即隔一个取一个
 >>> str2[7:0:-2] 
 'a,le' 从索引7处倒着隔一个取一个取到索引1处
 >>> str2[-4:-1]
 'iso' 从索引-4处取到-2处 
 >>> str2[-4::-1]
 'inaf,olleh' 从-4处到开始处倒着取

注意:

步径为正表示 正着取,索引从小到大 i < j

步径为负表示 倒着取,索引从大到小 i > j

支持运算:

索引、切片、min()、max()、len()等

len(s) s中的元素个数

min(s) s的最小值

max(s) s的最大值

支持方法:

S.index(sub [,start [,end]]) 找到指定字符串sub首次出现的位置

S.upper() 将一个字符串转换为大写形式

S.lower() 将一个字符串转化为小写形式

S.join(t) 使用s作为分隔符连接序列t中的字符串

 >>> l1 = list(str1)
>>> l1
['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
>>> ''.join(l1)
'hello,fanison' 使用空字符作为分隔符连接列表l1
S.replace(old, new[, count]) 替换一个字符串
>>> str1.replace('fan','FAN')
'hello,FANison'

注意:

使用 help()获取其帮助

>>> help(str.join)

2)列表

列表:容器类型

任意对象的有序集合,通过索引访问其中的元素,可变对象,长度可变,异构,任意嵌套

支持在原处修改

修改指定的索引元素,修改指定的分片,删除语句,内置方法

 >>> list1 = [ 1,2,3,'x','n' ]
 >>> list1[1]=56
 >>> print list1
 [1, 56, 3, 'x', 'n']
 >>> list1[1:3]=[] 会删除索引1到索引3之前的元素
 >>> print list1
 [1, 'x', 'n'] 
 >>> del(list1[1]) 使用del函数删除list索引为1的元素
 >>> print list1
 [1, 'n']

注意:

因为支持原处修改,不会改变内存位置,可使用 id() 查看其位置变化

内置方法:

L.count(value) 计算value值出现的次数

L.append(object) 将一个新元素追加到L末端

L.extend(iterable) 增加合并列表(第二个列表内容会以单个元素追加至末端)

 >>> l1 = [ 1,2,3 ]
 >>> l2 = [ 'x','y','z']
 >>> l1.append(l2)
 >>> l1
 [1, 2, 3, ['x', 'y', 'z']] 使用append方法会以其原有存在形式追加
 >>> l1 = [ 1,2,3 ]
 >>> l1.extend(l2)
 >>> l1
 [1, 2, 3, 'x', 'y', 'z'] 注意两种增加的区别

L.pop([index]) 返回元素index并从列表中移除它,如果省略则返回并移除列表最后一个元素

L.remove(key) 移除值为key的元素

 >>> l1 = [ 'x',2,'abc',16,75 ]
 >>> l1.pop(2) pop方法是按索引移除
 'abc'
 >>> l1
 ['x', 2, 16, 75]
 >>> l1.remove(16) remove方法是按值移除
 >>> l1
 ['x', 2, 75]

L.index(value) 指定值首次出现的位置

L.insert(index, object) 在索引index处插入值

 >>> l1.insert(1,'abc')
 >>> l1
 ['x', 'abc', 2, 75]

L.sort() 排序

L.reverse() 逆序

 >>> l1.sort()
 [2, 75, 'abc', 'x']
 >>> l1.reverse()
 ['x', 'abc', 75, 2]

l1 + l2: 合并两个列表,返回一个新的列表;不会修改原列表;

 >>> l1 = [ 1,2,3]
 >>> l2 = [ 'x','y','z']
 >>> l1 + l2
 [1, 2, 3, 'x', 'y', 'z']

l1 * N: 把l1重复N次,返回一个新列表;

 >>> l1 * 3
 [1, 2, 3, 1, 2, 3, 1, 2, 3] 使用id()查看是否生成新列表

成员关系判断字符:

in 用法: item in container

not in item not in container

 >>> l1 = [ 'x','y',3 ]
 >>> 'y' in l1
 True
 >>> 'x' not in l1
 False

列表解析:[]

列表复制方式:

浅复制:两者指向同一内存对象

 >>> l1 = [ 1,2,3,4 ]
 >>> l2 = l1
 >>> id(l1) == id(l1)
 True 可以看出两者内存地址相同
 >>> l1.append('x')
 >>> print l1
 [ 1,2,3,4,'x' ]
 >>> print l2
 [ 1,2,3,4,'x' ]

深复制:两者指向不同内存对象

1)导入copy模块,使用deepcoop方法

 >>> import copy
 >>> l3 = copy.deepcopy(l1)
 >>> id(l3) == id(l1)
 False 地址不同

2)复制列表的所有元素,生成一个新列表

 >>> l4 = l1[:] 
 >>> print l4
 [ 1,2,3,4,'x' ]
 >>> l1.append(6)
 >>> print l1
 [ 1,2,3,4,'x',6 ] l1改变
 >>> print l4
 [ 1,2,3,4,'x' ] l4不变

3)元组

表达式符号:()

容器类型

任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套

常见操作:

 >>> t1 = ( 1,2,3,'xyz','abc')
 >>> type(t1)
 tuple
 >>> len(t1)
 5
 >>> t2 = () 定义一个空元组
 >>> t3 = ( , )
 SyntaxError: invalid syntax 报错:使用逗号分隔的条件是最少要有一个元素

(1,)

 >>> t1[:]
 ( 1,2,3,'xyz','abc' )
 >>> t1[1:]
 (2, 3, 'xyz', 'abc')

(1,2)

 >>> t1[1:4]
 (2, 3, 'xyz')
 >>> t4 = 'x',1,'yz',45,[2,4,6] 注意!!!这样也可以生成元组
 >>> t4 
 ('x', 1, 'yz', 45, [2, 4, 6])

t1 + t4: 合并两个元组,返回一个新的元组;不会修改原元组;

 >>> t1 + t4
 (1, 2, 3, 'xyz', 'abc', 'x', 1, 'yz', 45, [2, 4, 6])

t1 * N: 把l1重复N次,返回一个新元组;

 >>> t1 * 3
 (1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc')

成员关系判断

in

not in

注意:

虽然元组本身不可变,但如果元组内嵌套了可变类型的元素,那么此类元素的修改不会返回新元组;

例:

 >>> t4 = ('x', 1, 'yz', 45, [2, 4, 6])
 >>> id(t4)
 44058448
 >>> t4[4] 
 [2, 4, 6]
 >>> t4[4].pop() 弹出列表内一个元素
 6
 >>> print t4[4]
 [2, 4]
 >>> print t4
 ('x', 1, 'yz', 45, [2, 4]) 
 >>> id(t4)
 44058448 由此可见,对元组内列表内的修改也会使元组发生改变,没有返回新元组

文档

python序列类型有哪些

python序列类型有哪些:python序列类型有哪些?在Python中什么才是序列类型,通过本文来详细了解。序列:字符、列表、元组所有序列都支持迭代序列表示索引为非负整数的有序对象集合字符和元组属于不可变序列,列表可变 1)字符字符串字面量:把文本放入单引号、双引号或三引号中; &
推荐度:
标签: 类型 什么 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top