【发布时间】: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