我有一个数字字符串列表,如下所示:
MyList = ['1','2','3 4 5 6 7','33333']
我想检查列表中的每个单元格获取的对象数量。我为每个单元格使用了len(),但是它返回了我想要的字符串长度。 我想要举例来说:
MyList[0] ~> 1
MyList[1] ~> 1
MyList[2] ~> 5
MyList[3] ~> 1
我是否应该抛出每个元素来检查它是否返回一个数字,如果没有循环通过单元格?或者是否有一些功能可以解决这个问题?
感谢。
答案 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]
。