如何解决从列表Python内部删除字符
我的输出显示为
colorCoords= ['brown',"['S158','X157']",'yellow',"['J156','J157','J158','P155','R153']"]
我希望它成为
colorCoords = ['brown','S158','X157','J156','R153']
解决方法
如果列表中的某些元素只是其他列表中的字符串,请尝试使用类似 eval()
的名称(但不使用eval()
,因为存在相关风险) 。例如:
colorCoords = ['brown',"['S158','X157']",'yellow',"['J156','J157','J158','P155','R153']"]
import numpy as np
def try_eval(string):
try:
return np.safe_eval(string)
except:
return string
def flatten(lst):
new_list = []
for item in lst:
if isinstance(item,list):
new_list.extend(item)
else:
new_lst.append(item)
return new_lst
colorCoords = flatten(list(map(try_eval,colorCoords)))
之所以有效,是因为:
>>> np.safe_eval('["123","234"]')
['123','234']
然后,您只需要将这些列表放在一起(有许多更好的方法可以做到这一点)。
编辑:如@Jasmijn所指出的,您还可以使用ast.literal_eval()
代替eval()
或np.safe_eval()
,这是评估未知表达式时最安全的选择(请参见{{3} }。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。