【Python学习】Python数据结构

一、列表(list)

  1. 列表用[]表示:li1 = [18, 19, 20, 21, 22]

  2. 列表的本质为一种有序的集合

  3. 创建列表

    # 创建空列表
    li2 = []
    li3 = list()
    print(li2)
    print(li3)
    # 创建带有初始元素的列表
    # 列表中的元素是可以不同的,但是一般相同
    li4 = [1, 2, 3, 4, 5, 'good', True]
    print(li4)
    
  4. 列表元素的访问

    # 列表元素的访问
    # 获取  列表名[下标]
    li5 = [18, 19, 20, 21, 22]
    print(li5[2])
    # print(li5[5])  报错,因为列表越界
    
    # 修改  列表名[下标] = 值
    li6 = [18, 19, 20, 21, 22]
    li6[2] = 30
    print(li6[2])
    
  5. 列表的常用方法

    # 列表的常用方法
    # 计算元素个数
    li7 = [1, 2, 3, 4, 5]
    print(len(li7))
    print(li7.__len__())
    
    # 增
    li8 = [1, 2, 3, 4, 5]
    print(li8)
    # 在末尾增加一个元素
    li8.append(6)
    print(li8)
    # 在指定位置(某个下标处)插入元素,原数据按顺序后移
    li8.insert(0, 100)
    print(li8)
    # 将参数列表中每一个元素都插入到原列表中
    li8.extend([7, 8, 9])
    print(li8)
    
    # 删除列表中的元素
    li9 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 按下标删除元素,默认为-1,返回删除的元素
    li9.pop()
    print(li9)
    # 按元素值删除第一个出现的元素
    li9.remove(4)
    print(li9)
    
    # 改
    # 查
    li10 = [1, 2, 3, 4, 4, 6, 7, 8, 6]
    # 获取元素第一次出现的下标
    print(li10.index(4))
    
    # 反转
    li11 = [1, 2, 3, 4, 5]
    li11.reverse()
    print(li11)
    
    # 排序,默认升序
    li12 = [0, 6, 3, 1, 9]
    li12.sort()
    print(li12)
    
    # 删除整个列表
    li13 = [0, 6, 3, 1, 9]
    del li13
    # print(li13) 报错,不存在此变量
    
  6. 注意:列表中的元素是可以不同的,但是一般相同

二、元组(tuple)

  1. 元组的本质也是一种有序集合

  2. 元组的创建

    # 创建空元组
    tu1 = tuple()
    print(tu1, type(tu1))
    tu2 = ()
    print(tu2, type(tu2))
    
    # 创建带有元素的元组
    tu3 = (1, 2, 3, 4, 5)
    print(tu3)
    # 创建只有一个元素的元组,元组需要添加一个逗号,否则类型为数字类型
    tu4 = (1,)
    print(tu4)
    
  3. 元组元素的访问

    # 元素的访问
    tu5 = (1, 2, 3, 4, 5)
    print(tu5[2])
    
  4. 常用方法

    # 元组常用方法
    # 计算元组个数
    tu6 = (1, 2, 3, 4, 5)
    print(len(tu6))
    
    # 查
    print(tu6.index(2))
    
    # 元组的删除
    del tu6
    
  5. 注意:元组不能够增加、修改,它在定义好之后就不能再修改了

  6. 列表和元组的切片与字符串相同

三、字典

  1. 字典是无序的,以键值对的方式存储数据(key-value

  2. 关于key

    • 每个键值对的key必须唯一
    • 不可变类型的数据才可以为key
    • key一般为字符串
  3. 字典的创建

    # 字典
    per = {'name': 'sunck', 'age': 18, 'height': 175, 'weight': 77}
    print(per)
    
  4. 字典的访问

  5. 字典的获取

    # 获取 字典名[key]
    print(per['age'])
    # print(per['money']) 报错
    # 得到一个None值
    print(per.get('money'))
    
  6. 字典的修改

    # 修改,如果键不存在则为增加,键存在则为修改
    per['weight'] = 75
    print(per)
    per['money'] = 9000000
    print(per)
    
  7. 注意:

    • 一个字典有多个键值对,每个键值对用逗号隔开,键值对中的键与值用冒号连接
    • None是一种数据类型,叫做空类型,只有None这一个值,表示没有

四、综合练习题

# 将list[1, 2, 3, 4, 5, 1, 2, 3]去重,即输出[1, 2, 3, 4, 5]
l1 = [1, 2, 3, 4, 5, 1, 2, 3]
l2 = list(set(l1))
print(l2)

# 将dict{'1': 'a', '2': 'b', '3': 'c', '4': 'd'}的键和值互换,即输出{'a': '1', 'b': '2', 'c': '3', 'd': '4'}
d1 = {'1': 'a', '2': 'b', '3': 'c', '4': 'd'}
d2 = {}
for key, value in d1.items():
    d2[value] = key
print(d2)

# 列表转字典
l3 = ['1', '2', '3', '4']
l4 = ['a', 'b', 'c', 'd']
print(dict(zip(l3, l4)))

# 将序列分解为单独的变量
l5 = [1, 2, 3]
x, y, z = l5
print(x, y, z)
for num in l5:
    print(num)

# 字母识词


发布了30 篇原创文章 · 获赞 30 · 访问量 797

猜你喜欢

转载自blog.csdn.net/qq_40947493/article/details/102565030