Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算python中tab的出现次数_Python_Python 3.x_Tabs - Fatal编程技术网

计算python中tab的出现次数

计算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_

我试图计算字符串中的制表符数,但它总是给我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_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')
    正确报告4

  • 这是您可能想要的:

    numbers = '1\t2\t3\t4\t5'
    numbers.count('\t')
    # 4
    

  • “它总是计算空格的数量”这是什么意思?我假设您指的是您尝试的解决方案,因此请编辑问题以包含您的代码。您的编辑器是否可能将选项卡转换为空格?我在您的帖子中将选项卡视为空格。我想就像@Linh所提到的,可能是将制表符转换为空格的原因。@lbragile这是你不应该回答不清楚的问题的原因之一。@Mark Meyer当时似乎很清楚,但从中吸取了教训。但从技术上讲,如果任何人觉得原来的问题不是他们真正想问的(即使解释得很清楚),他们都可以完全改变自己的问题。我猜这是抽签的运气:)在这里用逗号拆分,或者查找空格的索引,目的是什么?@kaya3您可以拆分以告诉每个索引处的制表符数量。查找空间的索引可以告诉您有多少个选项卡,这样您就可以计算有多少个选项卡-一个选项卡是用户定义的N个空间。您不需要查找索引来计算它们
    num\u spaces=elem.count(“”)
    工作正常。我真的不明白你的输出与这个问题有什么关系!我知道有一个更简单的方法,但不记得怎么做。谢谢你的建议,我做了上面的编辑。我认为最初的问题不清楚它在问什么,很可能代码没有正确地复制到堆栈溢出上。对于记录,如果要计算四个空格的序列,可以在一行中使用
    返回number.count(''*4)