首页 > 解决方案 > 我需要遍历列表 x 并删除 Python 中小于 y 的值,但我似乎无法弄清楚如何

问题描述

我正在编写一个 Python 3.x 程序,它从文本文件中读取,提取必要的信息,并执行进一步的处理。

链接的问题没有解决我的问题,我知道如何使用谷歌并测试了该代码,它不起作用。

我有一个变量 pointStore,它只包含整数。我无法找到一个解决方案,我可以只从这个列表中提取我需要的元素,或者一个允许我删除其他列表中相应元素的解决方案。例如,我在一个列表中收集电话号码,在另一个列表中收集姓名,在第三个列表中收集地址。如果我从一个元素中删除一个元素,我想删除它在其他列表中的对应元素。如果我什至无法获得我需要的值,我将如何做呢?

我认为一个混乱的解决方案是将pointStore逐行写入文件,读取该文件,然后逐行迭代它,只获取我需要的元素,但我想编写更清晰的代码。

我在包括 Stack Overflow 在内的几个不同网站上进行了相当多的查看,但我找不到真正解决我的问题的答案或可以应用于我的问题的答案。

def function():
    userInput = input("Enter a cutoff value: ")
    for element in myList:
        if element < userInput:
           myList.remove(element)

当我尝试运行上面的代码时,它会从列表中删除一些值,但不符合我设置的标准,例如。我指定了 5000,它删除了 1800 但没有删除 3882。

我希望程序遍历列表 myList 并删除小于用户输入的值,存储在 userInput 中。

标签: python-3.x

解决方案


如果您需要特定代码,请提供其他人可以运行和更正的内容。比如,你如何创建myList. 如果它是一个整数列表,您可以制作一个示例。

myList = [8, 6, 7, 5, 3, 0, 9]
userInput = "5"
cutoff=int(userInput)
filtered_list = [ i for i in myList if i>cutoff ]
print(filtered_list)

现在有一些东西要运行,你可以看到结果:

[8, 6, 7, 9]

如果您的列表看起来更像。

listOfStrings = ["12,345", "67,890"]

您可以将其更改为整数列表。

myList = [int(s.replace(",", "")) for s in listOfStrings]

然后你可以过滤它。另一种方法是使用语言环境。https://stackoverflow.com/a/2954231/2067492


推荐阅读