【问题标题】:How can you filter between two lists using a function in Python?如何使用 Python 中的函数在两个列表之间进行过滤?
【发布时间】:2021-04-26 03:07:03
【问题描述】:

我试图让 Python 过滤两个列表之间的值。它正在粘贴原始列表的值并忽略说明。提前感谢您的意见。

string_val = ['Tom','Kyle','Carl','Tom','Mike','Austin']
delval = ['Tom','Kyle']


def filter_list(string_val, delval):
    new_string =[]
    for v in string_val:
        if (string_val) != (delval):
            new_string.append(v)
    return new_string

result = filter_list(string_val, delval)
print(result)

【问题讨论】:

  • 你想用(string_val) != (delval)声明做什么?
  • 您的意思是not in 而不是!=?现在,您将string_val 中的每个字符串与整个列表 ['Tom' 'Kyle'] 进行比较,而不是与该列表中的每个单独元素/
  • 你想做什么?比如你想创建一个新列表,其中的元素在 string_val 中但不在 string_val 中?

标签: python string function filter


【解决方案1】:

你在比较错误的值,你应该比较每个值而不是整个 delval。

def filter_list(string_val, delval):
    new_string =[]
    for v in string_val:
        found = False
        if v not in delval:
            new_string.append(v)
    return new_string

result = filter_list(string_val, delval)
print(result)

【讨论】:

    【解决方案2】:

    首先,您正在遍历具有名称的string_val。您想检查每个名称是否在delval 中。使用in 执行此操作 我认为您正在寻找这样的东西(列表理解)

    string_val = ['Tom','Kyle','Carl','Tom','Mike','Austin']
    delval = ['Tom','Kyle']
    def filterList(string_val,delval):
        return [names for names in string_val if names not in delval]
    print(filterList(string_val,delval))
    

    输出

    ['Carl', 'Mike', 'Austin']
    

    【讨论】:

      【解决方案3】:

      这是查找不相交元素的 Python 单行代码。

      def filter_list(string_val, delval):
          return list(set(string_val) - set(delval))
      

      输出

      ['Austin', 'Mike', 'Carl']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-03
        • 1970-01-01
        • 1970-01-01
        • 2016-04-05
        相关资源
        最近更新 更多