如何在 python 中使用 % 方法和条件运算符?

Posted

技术标签:

【中文标题】如何在 python 中使用 % 方法和条件运算符?【英文标题】:How to use % method with conditional opeator in python? 【发布时间】:2021-11-24 00:47:54 【问题描述】:

我目前正在学习 Python 中的 DS。我正在为堆栈创建类。 我有几个问题-

    我需要什么样的编码技能才能成为 Python 数据结构方面的专家?是使用python的内置结构还是创建堆栈、队列、链表、图等基本数据结构?

    如何检查列表的元素是否为整数以便弹出它们?

    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()
    
    def peek(self):
        return self.items[len(self.items) - 1]
    
    def size(self):
        return len(self.items)
    
    def show(self):
        return self.items
    lt = ['a', '1', '2', 'b', '3']
    a = Stack()
    for i in lt:
       a.push(i)
    for j in lt:
       if not j.isdigit():
          a.pop()
    a.show()
    
    

如何在这里使用 if 语句,以便可以从列表中弹出所有非整数项? if j!=%d 抛出错误

【问题讨论】:

如果完全删除#1 并(仅)关注#2 中的实际问题,这个问题会得到更好的接受。不需要“特殊”的编码技能。 数据结构超越了编程语言。几乎每种语言都有数组、列表、队列、堆栈、映射/字典等。您需要学习这些概念,以便知道如何以及何时将它们应用于您的问题,而不管语言如何。没有“Python 数据结构专家”之类的东西。 删除一组东西时,最好用你想保留的项目建立一个新列表。 lst = [i for i in ['a','1','2','b','3'] if not i.isdigit()]. 【参考方案1】:

回答第 1 题: python的内置结构不是理解数据结构的解决方案。因此,如果您想真正提高您在数据结构和算法方面的技能,那么请务必手动进行。并了解堆栈、链接列表、队列不同类型的排序如何工作的核心概念。明确概念后了解BFS,DFS,最短路径找出算法以及不同类型的算法。您将获得有关算法时间复杂度和空间复杂度的知识。因此,如果您对数据结构和算法有所了解,请不要使用内置结构。

回答第 2 题:

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()

  def peek(self):
      return self.items[len(self.items) - 1]

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

  def show(self):
      return self.items
lt = ['a', '1', '2', 'b', '3']
a = Stack()

for j in lt:
   if not j.isdigit():
      a.push(j)
a.show()

【讨论】:

【参考方案2】:

您不需要从apop,因为您没有向其中添加任何内容。以下是您如何将其编写为循环:

lst = ['a','1','2','b','3']
a = []
for i in lst:
    if not i.isdigit():
        a.push(i)

我在 cmets 中引用的列表理解更好:

lst = ['a','1','2','b','3']
a = [i for i in lst if not i.isdigit()]

请注意,您不应将自己的变量命名为 list,因为这会隐藏 Python 内置类型。

【讨论】:

以上是关于如何在 python 中使用 % 方法和条件运算符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中编写三元条件运算符? [复制]

如果条件在c ++和python中执行运算符[重复]

Python中使用逻辑与运算符“and”判断两个比较条件是否满足时编辑器提示“Simplify chained comparison ”的解决方法

Python Selenium:如何在预期条件下应用“与”逻辑运算符

Python基础之条件判断

《Python基础教程》第五章:条件循环和其他语句