【问题标题】:convert list element to 1 and 0 based on conditions in python根据python中的条件将列表元素转换为1和0
【发布时间】:2021-10-23 02:39:20
【问题描述】:

假设我有一个字符串列表如下:

mylist = ['x','y','z','a','b','c']

我想选择某个元素并将它们转换为1,其余元素为0。例如,我想选择'z','b','c',所以结果列表将是[0 , 0, 1, 0, 1, 1] 我尝试使用列表理解,但我不太熟悉这应该如何完成。我有以下,但它似乎不起作用

[1 for i in mylist if i in ['z','b','c']]

【问题讨论】:

    标签: python list-comprehension


    【解决方案1】:

    您可以使用列表推导:

    mylist = ['x','y','z','a','b','c']
    output = [int(u in 'zbc') for u in mylist]
    print(output) # [0, 0, 1, 0, 1, 1]
    

    表达式u in 'zbc' 有效,因为每个项目都是一个字符。如果(更一般地)这些项目是字符串,那么您可能想改用 u in ('something', 'like', 'this')

    【讨论】:

      【解决方案2】:

      你也可以

      result = [*map('zbc'.count, mylist)]
      

      或者对于更长的字符串:

      [*map(('foo', 'bar', 'qux').count, mylist)]
      

      【讨论】:

        【解决方案3】:

        您需要在列表理解中使用 if/else 语句。

        In [7]: [1 if i in 'zbc' else 0 for i in mylist]
        Out[7]: [0, 0, 1, 0, 1, 1]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-25
          • 1970-01-01
          • 2014-02-06
          • 2017-01-23
          • 2021-07-20
          • 1970-01-01
          • 2023-01-23
          • 1970-01-01
          相关资源
          最近更新 更多