tuple 元组

定义元组

  1. names =("tom","lily")
  2. a = [1,2]
  3. b = "hello"
  4. c = 2
  5. print(type(a)) # <class 'list'>
  6. print(type(b)) # <class 'str'>
  7. print(type(c)) # <class 'int'>
  8. print(type(names)) # <class 'tuple'>

元组特性

  • 定义好的数据不能修改
  1. names =("tom","lily")
  2. names[1] = "jarry"

上面的代码会报错;
image.png

元组支持的方法

  • count 统计数量
  • index 查找索引
    1. names =("tom","lily","tom")
    2. # tom的数量
    3. n = names.count("tom")
    4. print(n)
    5. i = names.index("lily")
    6. print(i)

    元组数据应用场景

    数据定义好之后就不再更改的场景,比如 游戏中地图上一些建筑的位置;

测试代码中,比如链接数据库的相关信息可以存放在元组。


set 集合

集合类型的重要特征是: 无序, 并且数据不重合;

定义集合

  1. # 定义集合
  2. names = {"lily","tom","tom","apple","apple"}
  3. print(type(names)) # <class 'set'>
  4. # 集合会自动的将重复数据去重,
  5. print(names) # {'lily', 'tom', 'apple'}

使用场景

有数据重复 需要去重的场景;

数据类型转换

可以将 集合 set, 元组 tuple, 列表 list 三种类型的数据进行相互转换;

  1. 现在有个 tuple 存放全班同学的成绩

    1. scores = (100,99,100,88,45,67,45,67,90,100)

    请使用一段代码,将成绩去重后进行从大到小的排序;

  2. 去重,将tuple 转换为 set 就可以实现去重;

  1. # tuple
  2. scores = (100,99,100,88,45,67,45,67,90,100)
  1. 转换list 进行排序 ```python

    set -> list

    s2 = list(s1) print(s2, type(s2)) # [67, 99, 100, 45, 88, 90]

进行排序

s2.sort(reverse=True) print(s2) # [100, 99, 90, 88, 67, 45]

  1. ---
  2. 也可以一步到位
  3. ```python
  4. print(sorted(list(set(scores)),reverse=True))

dict 字典

创建字典

  1. userinfo = {
  2. "name":"xiaoming",
  3. "age":25,
  4. "workyear": 3,
  5. "isgood": True
  6. }
  7. print(type(userinfo)) # <class 'dict'>

访问字典

可以通过访问 字典中的key 值来获取对应的value;

  1. print(userinfo["name"])

练习

  1. students = [
  2. {"name":"xiaowang","age":30},
  3. {"name":"Tom","age":31},
  4. {"name":"xiaohong","age":28},
  5. {"name":"xiaoli","age":30},
  6. {"name":"jarry","age":30}
  7. ]
  1. 访问 xiaohong 的age值

    1. print(students[2]["age"])
  2. students中添加一名新同学 {"name":"huahua","age":23}

    1. students.append({"name":"huahua","age":23})

    面试问题

  3. 元组和列表的区别;

    1. 元组定义好之后是不能被修改的,但是列表中的数据可以进行增删改查的操作;
    2. 支持方法不一样:元组只有两个查找的方法 count,index,但是列表支持更多的方法;
  4. 集合set 和字典 dict 的区别;
    1. dict 字典中的值是成对出现的,key : value 对应的
    2. set 集合中的数据都是单独的。
    3. 定义空的字典 {}, 定义空的集合 set()

思维导图

python-03 - 图2