1

下面应该是一个相当简单的计数/长度需求,但是我不知道如何让它工作......

示例代码

tl1 = "2, 5, 11"
tl2 = "2, 5, 11, 29, 48, 1, 492, 2993, 91, 8, 8, 3"
tl3 = "9382938238"
print len(tl1)
print len(tl2)
print len(tl3)

它返回什么:

8
43
1

它应该(对我来说)返回什么::

3
12
1

知道如何实现我想要的回报吗?

谢谢
-Hyflex

4

5 回答 5

2

这是一种方法:

tl1 = "2, 5, 11"
tl2 = "2, 5, 11, 29, 48, 1, 492, 2993, 91, 8, 8, 3"
tl3 = "9382938238"

for t in (tl1,tl2,tl3):
    print len([x for x in t.split(',') if x.strip().isdigit()])

印刷:

3
12
1

优点是计算实际整数,而不仅仅是拆分项目的数量:

>>> tl4 = '1, 2, a, b, 3, 44'   # 4 numbers, 5 commas, 6 items (numbers and letters)
>>> len(tl4.split(','))
6                               # that numbers and letters...
>>> len([x for x in tl4.split(',') if x.strip().isdigit()])
4                               # integer fields only
于 2013-10-23T01:17:33.987 回答
2

If all of your strings are like that, then you can simply use the .split method of a string:

>>> tl1 = "2, 5, 11"
>>> tl2 = "2, 5, 11, 29, 48, 1, 492, 2993, 91, 8, 8, 3"
>>> tl3 = "9382938238"
>>> len(tl1.split())
3
>>> len(tl2.split())
12
>>> len(tl3.split())
1
>>>

.split defaults to split on whitespace characters. You could also split on , if there is a chance that there could be more than 1 space between the numbers.

于 2013-10-23T01:07:48.150 回答
2

您的问题是在 a 中string,空格和字符计入长度。

所以,这个变量的长度,它是一个字符串:

string = '123 abc'

是 7,因为空间很重要。

现在,要获得您正在寻找的结果,您需要将字符串更改为一个列表,这是一组逗号分隔的值。请注意,我们没有将列表命名为“list”,因为list()它是 python 中的一个函数:

lst = ['2','5','11']

现在,当我们检查列表的长度时:

>>> print len(lst)
3

结果是“3”

让你的字符串看起来像上面的列表:

>>> tl1 = "2, 5, 11"
>>> print tl1.split(',')
['2','5','11']

然后你可以使用检查长度len()

于 2013-10-23T01:05:52.043 回答
2

字符串的长度是字符串中的字符数。

str.split与逗号 ( ) 一起使用','

>>> tl1 = "2, 5, 11"
>>> tl2 = "2, 5, 11, 29, 48, 1, 492, 2993, 91, 8, 8, 3"
>>> tl3 = "9382938238"

>>> tl1.split(',')
['2', ' 5', ' 11']

>>> len(tl1.split(','))
3
>>> len(tl2.split(','))
12
>>> len(tl3.split(','))
1
于 2013-10-23T01:06:00.627 回答
2

您可以使用正则表达式轻松完成此操作:

>> import re
>> result = re.split(r'\D+', '1, 2, 35')
>> result
   ['1', '2', '35']
>> len(result)
   3

如果您需要支持浮点数或其他东西,它会有点复杂,但正则表达式仍然是要走的路。

于 2013-10-23T01:07:26.393 回答