第四节 元组Tuple

Tuple 举例

p = ('Jack', 'Lily', 'Anne')
print(p[2]) # Anne
print(p) # ('Jack', 'Lily', 'Anne')

q = (1, 9, 3)
print(max(q)) # 9

for i in q:
    print(i)

Tuple与List的区别

  • 一眼能看到的区别就是把 [ ] 换成了 ( )
  • 还有个区别就是在元组(Tuple)中的数值是不可更改的。比如在上面的例子中要是q[2]=1 这样是会报错的。

除了上面两点,你只要想着元组(Tuple)里的值是绑死在那里的。 那对应的比如排序sort()、追加append()这类函数肯定是没法用的。

所以,当我们不需要变量值有改动的时候,就可以用Tuple这个数据类型。

用dir()函数查看当前数据类型的可用函数。

a = list()
print(dir(a))

b = tuple()
print(dir(b))
# dir(a)的结果如下:前面的不用管,最后面的函数是:
'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'

# 而dir(b)的结果只有:
'count', 'index'

Tuple与Dictionary的关系

Dictionary的items()方法会返回一个将Dictionary转化成Tuple(元组)的List。Dictionary中的每一组key-value都是一个元组。

dic = {'name':'Jack', 'age':12, 'money':100}

tups = dic.items()
print(tups)

for (k,v) in tups:
    print(k,v)

操作 Tuple

1.多个变量同时赋值

(x, y) = (4, 'Jack')
print(x)
print(y)

a, b = 87, 67
print(b)

a1, b1, c1 = 'Jack', 78, 4
print(b1)

2.元组之间比较大小

print((0,1,2) < (5,1,2)) # True
print((0,1,200) < (0,1,100)) # False
print(('Jones','Sally') < ('Jones','Sam')) # True

练习

假设有一个字典变量d = {'a':10, 'c':22, 'b':8},输出结果为:把字典中所有的键值对转换成 value-key元组形式的列表,最后按value值排序。即:[(22, 'c'), (10, 'a'), (8, 'b')]

d = {'a':10, 'c':22, 'b':8}
lst = []
for k,v in d.items():
    # 补充完整下面的代码
    # ...

拓展知识

使用列表推导式

d = {'a':10, 'c':22, 'b':8}
print(sorted([(v,k) for k,v in d.items()]))

解析:

  • 1.d.items()会返回字典d中的键值对,每个键值对都表示为一个元组(key, value)
  • 2.列表推导式[(v, k) for k, v in d.items()]会遍历字典中的每个键值对,并将其转换为一个新的元组(value, key),并将这些元组组成一个新的列表。
  • 3.sorted()函数会对这个新的列表进行排序,按照元组中的第一个元素(value)进行升序排序。

当我们需要对Dictionary中的value值进行排序的时候,就可以用这个方法了。

results matching ""

    No results matching ""