3

我的问题:我想在这个字符串中添加所有数字,'1.14,2.14,3.14,4.14'但是逗号导致我的 sum 函数无法正常工作。
我认为使用 strip 函数可以解决我的问题,但似乎还有一些我遗漏或不太理解的东西。

total = 0
for c in '1.14,2.14,3.14'.strip(","):
    total = total + float(c)
print total

我已经搜索了如何从字符串中删除逗号,但我只找到了有关如何从字符串的开头或结尾删除逗号的信息。

附加信息:Python 2.7

4

8 回答 8

8

我会使用以下内容:

# Get an array of numbers
numbers = map(float, '1,2,3,4'.split(','))

# Now get the sum
total = sum(numbers)
于 2013-04-01T17:20:14.023 回答
4

你不想要strip,你想要split

在您的情况下,该split函数将使用您传递给它的分隔符将您的字符串分隔成一个数组split(',')

于 2013-04-01T17:20:22.993 回答
3

去掉逗号list

针对 Python3 更新:

a = [1,2,3,4,5]
b = ''.join(str(a).split(','))

从列表中删除逗号,即

[1,2,3,4,5]  --> [1 2 3 4 5]
于 2021-04-08T11:19:37.870 回答
1

split不需要strip

>>> for c in '1,2,3,4,5,6,7,8,9'.split(","):
    print float(c)

1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0

或者,如果您想要列表理解

>>> [float(c) for c in '1,2,3,4,5,6,7,8,9'.split(",")]
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]

为了得到总和,

>>> sum(map(float, '1,2,3,4,5,6,7,8,9'.split(",")))
45.0
于 2013-04-01T17:35:06.407 回答
1
values=input()         
l=values.split(",")   
print(l)

值=1,2,3,4,5

结果是 ['1','2','3','4','5']

于 2018-02-08T11:58:28.960 回答
1

使用它来删除逗号和空格

a = [1,2,3,4,5]
print(*a, sep = "")

输出:- 12345

于 2020-02-19T12:07:19.360 回答
0

这将在您的问题的第一个字符串中添加所有数字:

sum(float(x) for x in '1.14,2.14,3.14,4.14' if x.isdigit())
于 2013-04-01T17:25:43.603 回答
0

由于您的浮点输入列表中似乎有一个模式,因此这个单行代码会生成它:

>>> sum(map(float, ','.join(map(lambda x:str(x+0.14), range(1,5))).split(',')))
10.559999999999999

而且由于用逗号连接并立即用逗号分隔没有多大意义,所以这里有一段更理智的代码:

>>> sum(map(float, map(lambda x:str(x+0.14), range(1,5))))
10.559999999999999



如果您实际上的意思是要对单个数字而不是实际的浮点数求和(尽管我对此表示怀疑,因为您在示例代码中强制转换为浮点数):

>>> sum(map(int, ''.join(map(lambda x:str(x+0.14), range(1,5))).replace('.', '')))
30
于 2013-04-01T17:26:53.450 回答