计算python中tab的出现次数
我试图计算字符串中的制表符数,但它总是给我0计算python中tab的出现次数,python,python-3.x,tabs,Python,Python 3.x,Tabs,我试图计算字符串中的制表符数,但它总是给我0 numbers = '1\\t2\\t3\\t4\\t5' 我想返回4。但是: numbers.count('\\t') 给出0计算您提供的输入字符串中的空格数,并根据您对选项卡的定义确定有多少选项卡 def calcTabs(numbers, tab): split_nums = numbers.split(",") num_tabs = [] for elem in split_nums: space_
numbers = '1\\t2\\t3\\t4\\t5'
我想返回4。但是:
numbers.count('\\t')
给出0计算您提供的输入字符串中的空格数,并根据您对选项卡的定义确定有多少选项卡
def calcTabs(numbers, tab):
split_nums = numbers.split(",")
num_tabs = []
for elem in split_nums:
space_ind = elem.count(' ')
num_tabs.append(len(space_ind)/tab)
return num_tabs
tab = 4 # number of spaces a tab equals
numbers = '1,3 4,5 6 7 8'
list_tabs = calcTabs(numbers, tab)
print(list_tabs)
输出:
[0.0, 1.0, 2.25]
[0, 1, 2]
可以看出,这会告诉您选项卡的数量(例如,如果您有两个选项卡和一个空格,则即使使用分数)
如果只需要选项卡的数量(作为一个整数),可以使用math.floor()来实现:
import math
def calcTabs(numbers, tab):
split_nums = numbers.split(",")
num_tabs = []
for elem in split_nums:
space_ind = elem.count(' ')
num_tabs.append(math.floor(space_ind/tab))
return num_tabs
tab = 4 # number of spaces a tab equals
numbers = '1,3 4,5 6 7 8'
list_tabs = calcTabs(numbers, tab)
print(list_tabs)
输出:
[0.0, 1.0, 2.25]
[0, 1, 2]
'\t'
,而不是'\\t'
。后者是一个反斜杠,后跟一个't'
数字。计数('\\t')
正确报告4numbers = '1\t2\t3\t4\t5'
numbers.count('\t')
# 4
“它总是计算空格的数量”这是什么意思?我假设您指的是您尝试的解决方案,因此请编辑问题以包含您的代码。您的编辑器是否可能将选项卡转换为空格?我在您的帖子中将选项卡视为空格。我想就像@Linh所提到的,可能是将制表符转换为空格的原因。@lbragile这是你不应该回答不清楚的问题的原因之一。@Mark Meyer当时似乎很清楚,但从中吸取了教训。但从技术上讲,如果任何人觉得原来的问题不是他们真正想问的(即使解释得很清楚),他们都可以完全改变自己的问题。我猜这是抽签的运气:)在这里用逗号拆分,或者查找空格的索引,目的是什么?@kaya3您可以拆分以告诉每个索引处的制表符数量。查找空间的索引可以告诉您有多少个选项卡,这样您就可以计算有多少个选项卡-一个选项卡是用户定义的N个空间。您不需要查找索引来计算它们
num\u spaces=elem.count(“”)
工作正常。我真的不明白你的输出与这个问题有什么关系!我知道有一个更简单的方法,但不记得怎么做。谢谢你的建议,我做了上面的编辑。我认为最初的问题不清楚它在问什么,很可能代码没有正确地复制到堆栈溢出上。对于记录,如果要计算四个空格的序列,可以在一行中使用返回number.count(''*4)
。