Python元组的基本概念:元组与列表类似,不同之处在于元组中的数据只能被调用,不能被修改,元组使用小括号 ( ) 表示。如果元组里只有一个元素,需要向元素后边加上 逗号 “,”表示此为元组。
- 使用tuple()函数可以将其他序列转换为元组。
- 元组没有append()、extend()、remove()、pop等方法。
- 通过tuple()函数可以将列表冻结,而使用list()函数可以将元组融化。
- 元组的访问和处理速度比列表要快,如果对大量数据进行遍历,而不需要对其中的元素进行任何修改,那么建议使用元组而不是列表。
- 元组通常用于为函数传递参数,从而防止在函数中修改参数。
>>> a = (1)
>>> a
1
>>> a = (1,) #当只有一个元素,需要向元素后边加上 ,号表示为元组
>>> a
(1,)
>>> b
[1, 2, 3, 4, 5, 'a', 'b', 'c'] #此时b列表是可以修改的
>>> a = tuple(b) #把列表用tuple转换成元组,则不能进行修改,可以转换成列表进行更改
>>> a
(1, 2, 3, 4, 5, 'a', 'b', 'c') #此时元组的内容是无法进行修改的
练习:
过滤敏感词,把敏感词替换为*,敏感词:非法、暴力、攻击。
代码语言:javascript复制#!/usr/bin/python3
txt = input('请输入你想说的话:') #输入任意内容
keyword = ('非法','暴力','攻击') #设置敏感词
for i in keyword: #i在keyword内循环
if i in txt: #如果i的值在keyword
txt=txt.replace(i,'***') #则利用.replace将txt内等于i的值替换成***
print(txt) #最后输出txt
zip()函数
- zip()函数可以将多个可迭代的对象中的元素进行组合,得到一个个元组,也被称为拉链函数。
- 如果两个序列的长度不一致,zip()函数在最短序列"用完"时就会停止,以最短序列的长度进行"配对"。
>>> a = '12345'
>>> b = 'abcde'
>>> list(zip(a,b)) #得到一对一对的元组
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'd'), ('5', 'e')]
>>> list(zip(range(4),b)) #取值编号0~3的三个字符,共计四个字符,所以对应b变量的4个
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
如进行以下操作,将1~10和10~1进行相加:
代码语言:javascript复制>>> a = list(range(1,11))
>>> b = list(range(10,0,-1))
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> b
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> for m,n in zip(a,b): #用两个循环变量分别在a和b中循环取值
... print(m n,end=' ') #输出每次循环m n的值
...
11 11 11 11 11 11 11 11 11 11 >>>
>>> for m,n in zip(a,b):
... print(m*3 n*2,end=' ') #循环输出输出m*3 n*2
...
23 24 25 26 27 28 29 30 31 32
[em]zip函数不仅只能处理2个参数,参数可以是任意个,也可以是任意参数如(元组、列表),不过最后能够组合出来的元素数量是由最短的那个参数决定的。[/em]
代码语言:javascript复制>>> list(zip(a,b,['h','a','l','l','o'],('P','y','t','h','o','n'),range(100,110))) #次例含有列表,元组,字符串,数值
[(1, 10, 'h', 'P', 100), (2, 9, 'a', 'y', 101), (3, 8, 'l', 't', 102), (4, 7, 'l', 'h', 103), (5, 6, 'o', 'o', 104)]