元组 tuple
元组是不可改变的序列,同list一样,元组可以存放任意类型的元素表示方法:
用小括号()括起来,当元素括起来加逗号(,)区分是单个对象还是元组创建空元组的字面值:
t = ()创建非空元组的字面值:
t = 200,t = (20, )
t = (1, 2, 3)
t = 100, 200, 300
type(x)
函数用来返回x的类型
元组的错误示例:
t = (20)x, y, z = 100, 200, 300 #序列赋值
x, y, z = (100, 200, 300) #序列赋值
x, y, z = [100, 200, 300] #序列赋值
x, y, z = 'ABC' #序列赋值
元组的构造(创建)函数:
tuple()
生成一个空元组,等同于()
tuple(iterable)
用用可迭代对象生成一个元组
示例 >>> t = tuple()
>>> t
()
>>> t = tuple('1234')
>>> t
(1, 2, 3, 4)
>>> t = tuple(['1234'])
>>> t
(1, 2, 3, 4)
>>> t = tuple(('1234')
>>> t
(1, 2, 3, 4)
元组的运算:
元组的所有运算同列表的运算方式一致算数运算:
+ += * *=
比较运算:
< <= > >= == !=
in / not in 运算
索引 和 切片
元组的索引和切片等同于列表的索引和切片元组的切片是返回一个元组
元组不能索引赋值和切片赋值
元组的方法
T.count(value) 返回元素个数(同list.count())T.index(value,[start,[stop]]) 返回某个元素在元组的索引位置(同list.index())
序列相关的函数:
len(x)max(x)
min(x)
sum(x)
any(x)
all(x)
str(obj) 将对象序列化为字符串
list(iterable) 列表
tuple(iterable) 元组
reversed(seq) 返回反向顺序的迭代器对象
sorted(iterable,reverse=False) 返回已排序的列表(生成新的列表,不会改变原来列表的值)
reversed函数示例:
#! /usr/bin/python3
L = [2, 3, 5, 7]
for x in reversed(L):
print(x) # 打印 7, 5, 3, 2
思考:
元组里能否存取列表?既:
t = (1, 2, [3.1, 3.2])
能否把3.1改为3.14? #可以
为什么
练习:
#!/usr/bin/python3
'''
任意输入字符串,将此字符串中的空格全部去掉,生成反转后的字符串:
如:
输入: abc def g<回车>
打印输出:gfedcba
'''
# 方法一:
s = input("输入一串字符串:")
s = ''.join(s.split(' '))
s = s[::-1]
print(s)
# 方法二
s = input("输入一串字符串:")
s = s.replace(' ', '')
s = s[::-1]
print(s)
# 方法三
s = input("输入一串字符串:")
L = []
for x in reversed(s): # 反向迭代
if x != ' ':
L.append(x) # 把不是空格的加入到列表中
s2 = ''.join(L)
print(s2)
# 方法三
s = input("输入一串字符串:")
# 使用列表推到式
s2 = ''.join([x for x in reversed(s) if x != ' '])
print(s2)