A= ['(100)','(98.2)', '400', '500']
如何用括号替换带有减号的数字列表?我更喜欢简单的一行代码。
所需的输出如下:
A= ['-100','-98.2', '400', '500']
我的方式很长
if '(' in A[0]:
A[0] = -float(A[0].translate(None,"(),"))
答案 0 :(得分:1)
选项1
str.strip
+ 列表理解。
>>> ['-' + y.strip('()') if '(' in y else y for y in A]
['-100', '-98.2', '400', '500']
选项2
使用map
+ lambda
修改第一种方法。
>>> list(map(lambda y: '-' + y.strip('()') if '(' in y else y, A))
['-100', '-98.2', '400', '500']
就个人而言,我更喜欢列表理解。
答案 1 :(得分:1)
你也可以使用正则表达式,非常好 -
[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]