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

Posted

技术标签:

【中文标题】Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在[重复]【英文标题】:Python: convert list of strings to booleans where boolean is present in string form [duplicate] 【发布时间】:2018-11-05 15:38:00 【问题描述】:

如何将"True" 替换为布尔值True1

mylist = ["Saturday", "True"]

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

TypeError: replace() argument 2 must be str, not bool

提前致谢!

【问题讨论】:

【参考方案1】:

使用列表推导:

result = [ True if x == "True" else x for x in mylist  ]

已编辑应有的 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']

提示是使用带有默认值的python dictionary get method:

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

【讨论】:

或使用x == 'True' or x。我倾向于在条件表达式中看到布尔文字.. @MartijnPieters,好镜头!您的方法最短且易读。 如果我同时拥有“True”、“Saturday”和“False”并希望转换为 True、“Saturday”和 False,我该如何扩展此列表理解 @fashioncoder:那就是x == 'True' if x in 'True', 'False' else x 感谢@MartijnPieters 或:result = [ True if x == "True" else False if x == 'False' else x for x in mylist ]

以上是关于Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python中列表的布尔值

Python学习之旅---数据类型(数字字符窜列表元组字典布尔值)

JS:将布尔列表转换为紧凑字符串?

Python:二进制字符串的布尔列表

我们如何将字符串转换为布尔值? [复制]

如何在 JavaScript 中将字符串转换为布尔值?