>我从一个文件中收集了一个真或假项目的列表,并将它们转换为字符串列表:
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 = []
for v in status:
if v == "True":
booleans.append(True)
else:
booleans.append(False)
status = booleans
或者在一行中:
status = [item == "True" for item in status]
一行:
status = list(map(lambda x: x=='True', status))