今日学习:tuple(元组)和列表(list)
寒假学习打卡第九天(mit6.100L 9/26)
今天学习了两个新的对象:tuple和list
1、tuple元素为单个时,要加一个逗号,这是为了和运算符()区别。
t_empty = () # 定义空元组
l_list = [] # 定义空列表
t1 = ('a',) # 单个元素需要加逗号,与运算符括号()区分
l1 = ['b'] # 无需加逗号
t2 = (1, 2, (3, 4))
l2 = ['a', 'b', ['c', 'd']]
print(len(t2), len(l2)) # 打印出3 3 因为只关心顶层元素数量
2、tuple的元素不可变,但是如果有像list这种可变元素,是可以修改其内部元素的。
t3 = (1, 3, 'a', 3.5, [2, 6])
t3[4][1] = 6.6
t3[0] = 2
Traceback (most recent call last):
Cell In[13], line 3
t3[0] = 2
TypeError: 'tuple' object does not support item assignment
3、tuple和list都有着与字符串同样的切片操作。
4、tuple可以更方便的交换数的值
a = 3
b = 2
(a, b) = (b, a) # 可以用来交换两个数
a, b = b, a # 两个元组的元组可省略括号
4、tuple可以用来返回多个函数值,函数参数*args可以让我们自由接受一个及以上的参数。
def ispositive_iseven(x): # 可以用来返回多个值
return (x > 0, x % 2 == 0)
print(ispositive_iseven(4)) # (True, True)
print(ispositive_iseven(-1)) # (False, False)
def mean(*args):
"""
假设至少有一个输入,且输入全为数字
返回输入的平均值
"""
tot = 0
for a in args:
tot += a
return tot/len(args)
print(mean(3, 4, 5)) # 4.0
print(mean(1, 3, 5)) # 3.0