Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在

fas*_*der 3 python replace boolean

如何"True"用布尔值True或替换1

mylist = ["Saturday", "True"]
Run Code Online (Sandbox Code Playgroud)

我试过更换,但得到错误:

TypeError: replace() argument 2 must be str, not bool
Run Code Online (Sandbox Code Playgroud)

提前致谢!

dan*_*era 5

使用列表理解:

result = [ True if x == "True" else x for x in mylist  ]
Run Code Online (Sandbox Code Playgroud)

编辑应有的 OP 评论

您可以使用字典来转换一些值:

>>> changes = { "True": True,
...             "False": False,
...             "Lemon": "Gin Lemon"
...           }
>>> 
>>> mylist = ["Saturday", "True", "False", "Lemon", "Others" ]
>>> 
>>> [ changes.get( x, x ) for x in mylist ]

['Saturday', True, False, 'Gin Lemon', 'Others']
Run Code Online (Sandbox Code Playgroud)

提示是使用 具有默认值的python 字典get方法

如果键在字典中,则返回键的值,否则返回默认值。如果未给出默认值,则默认为 None,因此此方法永远不会引发 KeyError。