You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中%运算符条件判断用法及数据结构学习、栈元素校验问题

问题1:Python数据结构方向的技能要求
  • 两类能力都必须掌握:
    1. 首先要熟练运用Python自带的所有数据结构:基础的list、dict、set,还有collections模块下的deque、defaultdict、Counter等,要清楚每种结构的时间复杂度、底层实现逻辑、适用场景,比如为什么deque做队列的插入弹出效率远高于list,dict的哈希冲突是怎么解决的这类底层知识也要搞懂,不能只会套API。
    2. 栈、队列、链表(单向/双向/循环)、树(二叉树、堆、前缀树等)、图(邻接表/邻接矩阵存储)这些基础数据结构,必须自己手动实现过至少一遍,配套的经典算法(比如图的BFS/DFS、树的三种遍历)也要能随手写出来。只有自己实现过才会清楚每种结构的优劣势,遇到实际业务场景才能选到最优的解决方案,而不是只会用内置结构硬凑。
问题2:判断整数元素再弹出的实现

你现在的代码有两个核心逻辑问题:

  1. 栈是后进先出结构,你每次pop的是栈顶元素,但你遍历的是原列表的元素做判断,弹出的元素和你判断的元素根本不是同一个,逻辑完全不匹配。
  2. 你现在用的isdigit()只能判断字符串是不是纯数字组成,如果栈里有int、float等混合类型,这个方法就会失效。

修正后的可用代码如下:

class Stack():
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop() if not self.isEmpty() else None

    def peek(self):
        return self.items[-1] if not self.isEmpty() else None

    def size(self):
        return len(self.items)

    def show(self):
        return self.items

# 混合类型测试用例
lt = ['a', '1', 2, 'b', 3, 4.5]
a = Stack()
for i in lt:
    a.push(i)

# 临时栈用来暂存符合要求的整数元素
temp_stack = Stack()
while not a.isEmpty():
    current = a.pop()
    # 判断是否为整数类型,如果你需要把数字字符串也算作符合要求的整数,可以加对应的字符串判断分支
    if isinstance(current, int):
        temp_stack.push(current)
# 把临时栈的元素倒回原栈,恢复原有顺序
while not temp_stack.isEmpty():
    a.push(temp_stack.pop())

print(a.show())
问题3:%运算符实现判断的解决方法

你写的if j!=%d是错误语法,%d是字符串格式化的占位符,不能直接用来做条件判断。如果要用%运算符判断整数,逻辑是:任意数值对1取余结果为0,就说明它是整数,字符串类型需要先转成数值再判断。
实现示例:

def is_integer(n):
    try:
        # 兼容字符串数字、int、float类型的判断
        num = float(n)
        return num % 1 == 0
    except (ValueError, TypeError):
        # 无法转成数值的类型直接判定为非整数
        return False

# 测试效果
print(is_integer('123')) # 输出True
print(is_integer(45)) # 输出True
print(is_integer(4.0)) # 输出True
print(is_integer('abc')) # 输出False
print(is_integer(4.5)) # 输出False

需要判断的时候直接用if not is_integer(待判断元素):执行弹出操作即可。

内容的提问来源于stack exchange,提问作者Walter White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:48:00