Python:用列表

时间:2017-10-22 14:09:59

标签: python list

A= ['(100)','(98.2)', '400', '500']

如何用括号替换带有减号的数字列表?我更喜欢简单的一行代码。

所需的输出如下:

A= ['-100','-98.2', '400', '500']

我的方式很长

if '(' in A[0]:
      A[0] = -float(A[0].translate(None,"(),"))

2 个答案:

答案 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.]]