如何在 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】:您不需要从a
到pop
,因为您没有向其中添加任何内容。以下是您如何将其编写为循环:
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中使用逻辑与运算符“and”判断两个比较条件是否满足时编辑器提示“Simplify chained comparison ”的解决方法