如何将"True"
替换为布尔类型的True
或者数字1
?
mylist = ["Saturday", "True"]
我试过使用replace方法,但是出现了错误:
TypeError: replace() argument 2 must be str, not bool
提前感谢!
result = [ True if x == "True" else x for x in mylist ]
根据楼下评论进行编辑
您可以使用字典来转换一些值:
>>> 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']
get
方法:
如果键在字典中,则返回键的值,否则返回默认值。如果未提供默认值,则默认为None,因此此方法永远不会引发KeyError。
x == 'True' or x
。我倾向于在条件表达式中看到布尔字面值时感到犹豫不决。 - Martijn Pieters