【问题标题】:How to change a list of true/false strings to a list of True/false bools that can be used in a function - python [duplicate]如何将真/假字符串列表更改为可在函数中使用的真/假布尔值列表 - python [重复]
【发布时间】:2020-08-28 22:41:03
【问题描述】:

我从一个文件中收集了一个真假项目列表,并将它们转换成一个字符串列表:

status = ['True', 'True', 'True', 'True', 'True', 'True', 'True', 'True', 'False']

但是我需要将这些输入到一个只接受每个布尔值的函数中,但这使得所有这些字符串都为真,因为实际上在字符串中有一个值。

简而言之,这是我需要转换的内容:

status = [True, True, True, True, True, True, True, True, False]

所以我尝试了几种不同的循环结构:

for v in status:
    if v == "True":
        v = True
    if v == "False":
        v = False

但是,这仍然会返回列表中的字符串,或者我已经删除了列表值。 感谢大家的帮助。

【问题讨论】:

  • booleans = [item=='True' for item in status]
  • status = list(map(lambda x: x=='True', status))

标签: python string list replace boolean-logic


【解决方案1】:

一个班轮:

status = list(map(lambda x: x=='True', status))

【讨论】:

    【解决方案2】:

    您的循环实际上并没有将值存储回列表。您需要存储它们:

    booleans = []
    
    for v in status:
        if v == "True":
            booleans.append(True)
        else:
            booleans.append(False)
    
    status = booleans
    

    或者在一行中:

    status = [item == "True" for item in status]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多