【问题标题】:Python determine if list is sorted using predicated filterPython确定列表是否使用谓词过滤器排序
【发布时间】:2021-07-14 19:31:55
【问题描述】:

所以我正在尝试导入和复制一个列表。然后从 index[1:] 开始使用 list2 从左到右读取两个列表

从那里每次迭代都会比较两个列表,以确定 list2 是否大于 list1。

我也知道这可能是最不有效的方法,但分配要求它是一个谓词过滤器。

这是我目前所拥有的。

def main():
    fileName = input("Enter file name: ")
    dataSet1 = open(fileName, 'r')
    dataSet2 = dataSet1.copy()
    isSorted(dataSet1, dataSet2)


def isSorted(i, j): return i <= j
for i, j in range():
    list(filter(isSorted(i, j)))

它应该做什么:

如果 List2 中的所有迭代都大于 List1,它应该返回 True,否则返回 False。

我遇到的错误: 在模块中 对于 i, j, 在 range() 中: range 至少需要 1 个参数,得到 0

当然,我已经尝试向 range() 添加参数,并观察我的语法错误成倍增加。

【问题讨论】:

  • “我当然尝试向 range() 添加参数”。这就是你的问题的解决方案。更改后的新错误要么是由于在传递数字时引入了新的语法错误,要么是无论如何都会显示的不相关错误。另请注意,dataSet2 = dataSet1 不会创建副本。这是对同一个列表的两个引用。
  • 谢谢,用 .copy() 修复了列表问题。其余部分仍在工作。

标签: python list filter predicate


【解决方案1】:

range 显然需要输入(至少一个),你应该理解range 的含义,它生成从startstop 的数字,并选择step-size。不输入必要的输入是错误的,即使这意味着您有“较少”的错误。

所以 - 修复这个错误,然后继续处理下一个错误并修复它。
(具体来说——i &lt; j[1:] 可能会报错,因为比较这两个没有意义,可能还有其他一些问题......)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 2014-12-21
    • 1970-01-01
    • 2012-04-10
    • 2018-11-11
    • 1970-01-01
    相关资源
    最近更新 更多