【问题标题】:what if the list contains values like interger numbers in list like list1 = ['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323] contains values like 5,4,433如果列表包含像整数这样的值,比如 list1 = ['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323] 包含像 5,4,433 这样的值怎么办?
【发布时间】:2021-08-20 06:31:23
【问题描述】:

如果列表包含像列表中的整数这样的值怎么办

list1 = ['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323] 

包含5,4,433之类的值,那么如何在python中使用列表综合过滤它们?

Python 列表理解

【问题讨论】:

    标签: python list list-comprehension


    【解决方案1】:

    您可以执行[i for i in list1 if type(i) == int] 之类的操作来选择整数。

    【讨论】:

      【解决方案2】:

      你可以这样做:

      list1=['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323] 
      
      list2=[a for a in list1 if isinstance(a, int)]
      

      【讨论】:

        【解决方案3】:

        你也可以试试filterisinstance

        print(list(filter(lambda x: isinstance(x, int), list_1)))
        

        【讨论】:

        • 对输入列表和列表中每个项目输入的 lambda 参数使用相同的名称是一种不好的做法。 OP 要求列表理解,与具有 lambda 函数的过滤器相比,这通常也被认为是 Pythonic 方法。
        • @blhsing 编辑了我的答案...我发帖时打错了
        【解决方案4】:

        这样就可以了。

        [i for i in list1 if type(i) is int]
        

        或者

        [i for i in list1 if str(i).isnumeric()]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-21
          • 2020-10-04
          • 1970-01-01
          • 1970-01-01
          • 2021-07-30
          相关资源
          最近更新 更多