元组 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() 生成一个空元组,等于同()
tuple(iterable) 用可迭代对象生成一个元组
元组的运算:
元组的所有运算同列表的运算方式一致
算术运算:
+ += * *=
比较运算
< <= > >= == !=
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) 返回已排序的列表
示例:
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 ?
为什么?
练习:
任意输入一个字符串,将此字符串中的空格全部去掉,生成返转后的字符串:
如:
输入: abc def g<回车>
打印输出: gfedcba
(提示:可以用反向切片或reversed进行反转)
练习:
1. 算出 100 ~ 999 以内的水仙花数(Narcissistic Number)
水仙花数是指百位的3次方 加上 十位的3次方 加上个位的3次方等于原数的数字
例如:
153 等于 1**3 + 5**3 + 3**3
2. 任意输入一些大于零数,存于列表中L,当输入-1时结束输入
L = [1, 3, 5, 3, 7, 9, 3, 7, 6, 5]
1) 打印出这些数
2) 打印出这些数的和
3) 去掉列表L中重复第二次或之后出现的数,再次存到另一个列表L2中
L2 = [1, 3, 5, 7, 9, 6]
打印这些数
4) 打印L2列表中的数据的和
5) 将 L列表中,出现两次的数存到另一个列表L3中
L3 = [5, 7]
元组是不可改变的序列,同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() 生成一个空元组,等于同()
tuple(iterable) 用可迭代对象生成一个元组
元组的运算:
元组的所有运算同列表的运算方式一致
算术运算:
+ += * *=
比较运算
< <= > >= == !=
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) 返回已排序的列表
示例:
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 ?
为什么?
练习:
任意输入一个字符串,将此字符串中的空格全部去掉,生成返转后的字符串:
如:
输入: abc def g<回车>
打印输出: gfedcba
(提示:可以用反向切片或reversed进行反转)
练习:
1. 算出 100 ~ 999 以内的水仙花数(Narcissistic Number)
水仙花数是指百位的3次方 加上 十位的3次方 加上个位的3次方等于原数的数字
例如:
153 等于 1**3 + 5**3 + 3**3
2. 任意输入一些大于零数,存于列表中L,当输入-1时结束输入
L = [1, 3, 5, 3, 7, 9, 3, 7, 6, 5]
1) 打印出这些数
2) 打印出这些数的和
3) 去掉列表L中重复第二次或之后出现的数,再次存到另一个列表L2中
L2 = [1, 3, 5, 7, 9, 6]
打印这些数
4) 打印L2列表中的数据的和
5) 将 L列表中,出现两次的数存到另一个列表L3中
L3 = [5, 7]