python 中的数据结构

python 中的数据结构

在这里插入图片描述

1.1 序列

序列时有索引的数组

举例实现:

a=["北京","上海","广州","深圳","重庆","成都"]
print(a[2])
print(a[-1] + " " + a[-2])
print(a[1:3])
# 运行结果
"""
广州
成都 重庆
['上海', '广州']
"""

在序列中可以实现切片功能,切片功能非常重要,后续再Pandas的应用中会重点学习。

b=["北京","上海","广州","深圳","重庆","成都","兰州","乌鲁木齐"]
print(b[0:5:2])
"""
['北京', '广州', '重庆']
"""

上面代码中,0和5分别是序列的启示和终止位置,2时步长,因此出现这种运行结果。

序列也可以相加

image-20240428162313978

序列的 in 应用,用于判断字符串中是否存在序列之中

image-20240428162513646

注:sorted()用于对序列进行排序,list()用于将序列转化为列表,len,min,max,等则分别用于计算序列的长度、最小值、最大值……

1.2 列表

  1. 列表创建

    三种创建的方式,一是手工创建,二是创建空列表之后再添加表元素,三是直接创建一个数据列表。

    a=["北京","上海","广州","深圳","重庆","成都"]
    b=[]
    c=list(range(0,20,2))
    print(a)
    print(b)
    print(c)
    

    image-20240428162913155

  2. 列表元素操作

    列表建立之后,主要就是对列表进行增删改,

    #用append方式添加列表元素
    for i in range(1,10):
        b.append(i)
    print("原来的",b)
    b.insert(2,2.3)
    print("insert方法之后的:",b)
    c=[100,200,300]
    print("extend之后的:")
    b.extend(c)
    print(b)
    b[0]=10000
    print("修改过的:",b)
    del b[-1]
    print("删除过的:")
    b.remove(2.3)
    print(b)
    

    image-20240428163059538

    第一个循环以append方式汪列表b中添加数据,再用insert方式往列表中插入数据,insert方式准确的确定插入位置,extend 方法可以实现两个列表的合并,但是只能简单的合并再一块,对重复的数据不会进行处理。

    a=[1,2,3]
    b=[1,2,4]
    a.extend(b)
    print('看有重复数据的列表的extend结果:',a)
    

    image-20240428163431068

列表元素的命令

  • 删除命令:del(根据列表的索引删除),remove(根据列表的值删除)
  • 统计方法:count,index,sum……
  1. 列表循环语句

    一是 for 循环,二是 enumerate 函数

    print('for循环的输出:')
    for item in a:
        print(item)
    print('for+enumerate循环的输出:')
    for index,item in enumerate(a):
        print(index+1,item)
    
    

    image-20240428163811284

1.3 元组

元组内容不可改变,并且可以将不同类型的数据放入元组中

元组与列表的操作很类是,唯一区别在于元组再代码中是用圆括号括起来的

a=("北京","上海","广州","深圳","重庆","成都")
b=()
c=tuple(range(0,20,2))
print(a)
print(b)
print(c)
a=("哈哈","嘿嘿","呵呵")
print(a)

1.4 字典

  1. 字典的典型作用

    • 一、去重统计
    • 二、提高检索效率
  2. 创建字典

    三种方式创建。

    • 手工直接创建
    • 通过单列表的方法创建
    • 通过两个列表的方式创建
    # 手工创建
    d={'name':'王猪猪','name1':'李大壮'}
    if 'name2' in d:
        print(d['name'])
    else:
        print(d['name1'])
    
    
    # 单列表创建,fromkeys语句
    a=["北京","上海","广州"]
    d1=dict.fromkeys(a)
    print(d1)
    
    # zip语句痛过两个列表创建
    a2=["哈哈","呵呵","嘿嘿"]
    a3=[1,2,3]
    d2=dict(zip(a2,a3))
    print(d2)
    
  3. 字典内容的引用

    两种方式引用

    • 直接引用
    • get方法
    #直接引用方式和get引用方式
    for i in range(len(a2)):
        print(a2[i]+"  "+str(d2[a2[i]]))
        print(a2[i] + "  " + str(d2.get(a2[i])))
    
  4. 字典的增删改查

    d2["嘟嘟"]=4
    print(d2)
    d2["哈哈"]=10000
    print(d2)
    del d2["哈哈"]
    print(d2)
    print(d2.keys())
    print(d2.items())
    for x in d2.keys():
        print(x)
    for y in d2.items():
        print(y)
    
  5. 字典在多分支判断中的应用

    from distutils import log
    def stateA():
       print('stateA called')
    def stateB():
       print('stateB called')
    def stateC():
        print('stateC called')
    def stateDefault():
        print('stateDefault called')
    cases = {'a':stateA, 'b':stateB, 'c':stateC}#定义一个字典
    def switch(case):
      if case in cases:
        cases[case]()
      else:
        stateDefault()
    
    def test():
      switch('b')
      switch('c')
      switch('a')
      switch('x')
    test()
    
    

    先定义四个函数,随后定义一个字典 cases,在随后定义switch 的过程中,可以利用字典的 in 语句获取相应的数据。

1.5 集合

集合是一组元素的组合,其嘴重要的特征是保存不重复元素

  1. 两种创建方式
  • 直接创建
  • 用 set() 函数创建
set1={"北京","上海","广州","深圳"}
set2={"北京","重庆","成都","西安"}
a=["北京","三亚","海口","南宁"]
set3=set(a)
print(set1)
print(set2)
print(set3)
  1. 增删改功能

    • 添加:add
    • 定点删除:remove
    • 弹出方式:pop
    set1.add("乌鲁木齐")
    print(set1)
    set1.remove("乌鲁木齐")
    print(set1)
    print("现在开始进pop了:")
    print(len(set1))
    for i in range(1,len(set1)+1):
        set1.pop()
        print(set1)
    
  2. 集合运算

    交集&,并集|,差集-

    set1={"北京","上海","广州","深圳"}
    set2={"北京","重庆","成都","西安"}
    print(set1 & set2)
    print(set1 | set2)
    print(set1-set2)
    
  3. 集合综合案例

    import openpyxl
    from  openpyxl.reader.excel  import  load_workbook
    import sys
    import os
    wk=load_workbook(filename="基金数据.xlsx")
    sht1=wk["基金1"]
    sht2=wk["基金2"]
    a=set()
    b=set()
    for i in range(1,sht1.max_row+1):
        a.add(sht1.cell(i,1).value)
    for i in range(1,sht2.max_row+1):
        b.add(sht2.cell(i,1).value)
    print(a-b)
    print(b-a)
    
  • 53
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Token_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值