Python基础复习-组合数据类型

墨蓝 2024-03-02 07:56 112阅读 0赞

目录

  • 列表
    • 创建
    • 增删改查
    • 浅拷贝
    • 深拷贝【绝对的安全】
  • 元组
    • 打包与解包
  • 字典
    • 遍历
  • 集合
    • 集合的运算

列表

  • 序列类型
  • a=[1,2,3,4,5]
  • 元素有位置顺序,通过位置访问:a[0]

创建

  1. l1=list("my baby")
  2. l2=list(('李','宝','贝'))
  3. l3=list({
  4. '臭','宝','贝'})# 无序
  5. l4=list(range(1,6))
  6. print(l1)
  7. print(l2)
  8. print(l3)
  9. print(l4)
  10. ['m', 'y', ' ', 'b', 'a', 'b', 'y']
  11. ['李', '宝', '贝']
  12. ['宝', '臭', '贝']
  13. [1, 2, 3, 4, 5]

增删改查

  • fruit=[“apple”,”banana”]
    fruit.append(“pear”)
    fruit.insert(0,”orange”)
    fruit

    [‘orange’, ‘apple’, ‘banana’, ‘pear’]

    like=[“all”]
    fruit.extend(like)
    fruit

    [‘orange’, ‘apple’, ‘banana’, ‘pear’, ‘all’]

  • num=[0,1,2,3,4,5,6]
    num.pop(2)
    num

    [0, 1, 3, 4, 5, 6]

    s1=[“啊”,”a”,”啊”,”b”,”c”]
    s1.remove(“啊”)
    s1

    [‘a’, ‘啊’, ‘b’, ‘c’]

  • s1[0]=”first”

  • s1.index(“c”)

浅拷贝

  1. list1=[1,2,3,4,5]
  2. list2=list1.copy()# 浅拷贝
  3. list2.append(6)
  4. print(list1)
  5. print(list2)
  6. [1, 2, 3, 4, 5]
  7. [1, 2, 3, 4, 5, 6]

但是:

  1. list1=[1,[2,3,4]]
  2. list2=list1.copy()
  3. list2[1].append(5)
  4. print(list1)
  5. print(list2)
  6. [1, [2, 3, 4, 5]]
  7. [1, [2, 3, 4, 5]]

需要另外一种浅拷贝的方式:【可以独立增、改,但对列表型/字典型数据操作时会同时变,元组因为自杀的不可变性而使得不会同时变】

  1. list_1=[1,[2,3,4,6]]
  2. list_2=list(list1)
  3. list_2[1].append(7)
  4. print(list_1)
  5. print(list_2)

深拷贝【绝对的安全】

  1. import copy
  2. # 创建一个原始列表
  3. orig_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  4. # 使用深拷贝创建一个新的列表
  5. copied_list = copy.deepcopy(orig_list)
  6. # 修改原始列表中的一个元素
  7. orig_list[1][0] = 'X'
  8. # 输出原始列表和新列表
  9. print("原始列表:", orig_list)
  10. print("新列表:", copied_list)

输出结果:

  1. 原始列表: [[1, 2, 3], ['X', 5, 6], [7, 8, 9]]
  2. 新列表: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

元组

  • 序列类型
  • 元素不支持增删改 (元组:不可变的列表)
  • 如果元组里面有列表,那么这个列表是可以变的,顺带着这个元组也就变了
  • a=(1,2,3,4,5)
  • 元素有位置顺序,通过位置访问:a[0]

打包与解包

  • 打包返回

    def getnum(a):

    1. return a*a, a+3

    getnum(5)

    (25, 8)

  • 解包赋值

    a,b = (1,8)

  • 综合

    day=[1,2,3]
    week=[“Monday”,”Tuesday”,”Wednesday”]
    for day,week in zip(day,week):

    1. print(day,week)

    1 Monday
    2 Tuesday
    3 Wednesday

字典

  • 映射类型,键 【不可变数据类型:元组、数字、字符串】 值对
  • 列表、字典、集合是可变数据类型
  • a={11001:"xiaoming", 11002:"xiaohong"}
  • 元素没有位置顺序,通过键值访问:a[11001]
  • 键不能重复

遍历

  1. my_dict = {
  2. 'a': 1, 'b': 2, 'c': 3}
  3. for key, value in my_dict.items():
  4. print(key, value)
  5. my_dict = {
  6. 'a': 1, 'b': 2, 'c': 3}
  7. for key in my_dict.keys():
  8. print(key, my_dict[key])
  9. a 1
  10. b 2
  11. c 3

集合

  • 一系列互不相等的元素
  • 元素没有位置顺序
  • 元素必须是不可变的

集合的运算

  1. 集合的并集 (union):将两个集合中的元素合并成一个新的集合。

    set1 = {

    1. 1, 2, 3}

    set2 = {

    1. 4, 5, 6}

    union_set = set1.union(set2)
    print(union_set) # 输出:{1, 2, 3, 4, 5, 6}

  2. 集合的交集 (intersection):找出两个集合中共有的元素组成一个新的集合。

    set1 = {

    1. 1, 2, 3}

    set2 = {

    1. 4, 5, 6}

    intersection_set = set1.intersection(set2)
    print(intersection_set) # 输出:{ }

  3. 集合的差集 (difference):找出第一个集合中不属于第二个集合的元素组成一个新的集合。

    set1 = {

    1. 1, 2, 3}

    set2 = {

    1. 4, 5, 6}

    difference_set = set1.difference(set2)
    print(difference_set) # 输出:{1, 2, 3}

  4. 集合的对称差集 (symmetric difference):找出两个集合中不相同的元素组成一个新的集合。

    set1 = {

    1. 1, 2, 3}

    set2 = {

    1. 4, 5, 6}

    symmetric_difference_set = set1.symmetric_difference(set2)
    print(symmetric_difference_set) # 输出:{1, 2, 3, 4, 5, 6}

  5. 集合的笛卡尔积:将两个集合中的元素两两组合成一个新的集合。

    set1 = {

    1. 1, 2, 3}

    set2 = {

    1. 4, 5, 6}

    cartesian_product_set = set1.cartesian_product(set2)
    print(cartesian_product_set) # 输出:{ (1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6) }

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python中的组合数据类型

    在Python中,有几种常用的组合数据类型,包括列表(List)、元组(Tuple)和字典(Dictionary)。这些数据类型允许我们以不同的方式组织和存储数据。接下来,我将