什么是栈:Python语言描述

栈(stack)是一个项的有序集合,其中添加移除新项总发生在同一端。这一端通常称为“顶部”。与顶部对应的端称为“底部”。
栈s=(a1,a2,......an-1,an)
就像图片所描述的,栈s=(a1,a2,…an-1,an)。最后入栈的是an,最先出栈的也是an。所以栈符合LIFO原则。

LIFO

LIFO,即后进先出的排序原则。它基于在集合内的时间长度做排序。较新的项靠近顶部,较旧的项靠近底部。栈的底部很重要,因为在栈中靠近底部的项是存储时间最长的。最近添加的项是最先会被移除的。

栈之所以重要是因为它能反转项的顺序。插入跟删除顺序相反。

最典型的例子就是每个 web 浏览器都有一个返回按钮。当你浏览网页时,这些网页被放置在一个栈中(实际是网页的网址)。你现在查看的网页在顶部,你第一个查看的网页在底部。如果按‘返回’按钮,将按相反的顺序浏览刚才的页面。

Python实现栈

# 创建一个空的新栈。 它不需要参数,并返回一个空栈。
class Stack:
    def __init__(self):
        self.items = []
        
    # 测试栈是否为空。不需要参数,并返回布尔值。
    def isEmpty(self):
        return self.items == []
    
    # 将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
    def push(self, item):
        self.items.append(item)
        
    # 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
    def pop(self):
        return self.items.pop()
    
    # 从栈返回顶部项,但不会删除它。不需要参数。 不修改栈。
    def peek(self):
        return self.items[len(self.items)-1]
    
    # 返回栈中的 item 数量。不需要参数,并返回一个整数。
    def size(self):
        return len(self.items)

将十进制数转换为任意进制数

知道了栈的基本操作就做一个小项目来练练手。将十进制数转换为任意进制数,其实最高也就十六进制(还有更高进制吗)。

def baseConverter(n, base):
    
    # n是输入的十进制数字,base为要转化的进制数
    digits = '0123456789ABCDEF'
    
    #创建一个新栈
    s= Stack()
    
    # 将每次计算所得的余数添加进栈
    while n> 0:
        rem = n % base
        s.push(rem)
        n = n // base
    
    # 将余数倒序排列至新字符串    
    newString = ''
    while not remstack.isEmpty():
        newString = newString + digits[remstack.pop()]
        
    return newString
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个Python语言的大数据处理项目,供您参考。 项目名称:基于Python的电商销售数据分析 项目描述:本项目旨在利用Python对电商销售数据进行分析,包括商品销售情况、用户行为分析、营销策略评估等方面,从而帮助电商公司优化销售策略和提升销售额。 技术Python、Pandas、Numpy、Matplotlib、Jupyter Notebook 阶段一:数据获取和预处理 1. 数据获取:从电商平台的数据库中获取销售数据,包括订单编号、商品名称、销售数量、销售金额、购买用户等信息。 2. 数据预处理:使用Pandas对原始数据进行清洗和处理,包括去除重复数据、处理缺失值、转换日期格式等。 阶段二:数据分析和可视化 1. 商品销售情况分析:统计商品的销售数量和销售金额,比较不同商品的销售情况,找出畅销商品和滞销商品。 2. 用户行为分析:统计用户的购买频率、购买金额、购买时间等,分析用户的行为特征,找出高价值用户和低价值用户。 3. 营销策略评估:分析不同营销策略(例如打折、促销、赠品等)对销售额的影响,评估营销策略的效果。 4. 数据可视化:使用Matplotlib等库对分析结果进行可视化展示,包括折线图、柱状图、散点图等,使得分析结果更加直观和易于理解。 阶段三:项目总结和展望 1. 总结项目成果:对本项目的数据处理、分析和可视化结果进行总结和回顾,总结本项目取得的成果和经验。 2. 展望未来发展:对基于Python的大数据处理技术和应用进行展望,包括数据挖掘、机器学习、深度学习等方向的发展趋势和应用前景。 以上是一个可能的大数据处理项目,希望对您有所启发。如果您有需要,可以根据具体情况进行修改和补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值