列表中的Python元素数量

时间:2014-07-10 15:52:17

标签: python list iteration

我有一个数字字符串列表,如下所示:

MyList = ['1','2','3 4 5 6 7','33333']

我想检查列表中的每个单元格获取的对象数量。我为每个单元格使用了len(),但是它返回了我想要的字符串长度。 我想要举例来说:

MyList[0] ~> 1
MyList[1] ~> 1
MyList[2] ~> 5
MyList[3] ~> 1

我是否应该抛出每个元素来检查它是否返回一个数字,如果没有循环通过单元格?或者是否有一些功能可以解决这个问题?

感谢。

4 个答案:

答案 0 :(得分:7)

假设所有内容都以空格分隔,您可以使用split

MyList = ['1','2','3 4 5 6 7','33333']
print [len(x.split()) for x in MyList ]
[1, 1, 5, 1]

答案 1 :(得分:2)

使用分割和计数计数项目数

>>> MyList = ['1','2','3 4 5 6 7','33333']
>>> [len(itm.split()) for itm in MyList]
[1, 1, 5, 1]

split将空格中的字符串拆分为子字符串:

>>> "3 4 5 6 7".split()
["3", "4", "5", "6", "7"]

答案 2 :(得分:2)

假设元素之间只有一个空格,这将起作用:

counts = [cell.count(' ')+1 for cell in MyList]

并且明显快于len(cell.split())方法。

答案 3 :(得分:1)

看起来您想要确定每个字符串中用空格分隔的数字的数量。您可以使用split函数按空格拆分字符串。所以MyList[2].split() == ['3', '4', '5', '6', '7']MyList[3].split() == ['33333']。然后要检查它们的长度,您可以使用len功能。将所有内容与list comprehensions放在一起

counts = [len(number_string.split()) for number_string in MyList]

计数的值为[1, 1, 5, 1]