不使用集合类型(如.split())进行字符串切片

时间:2018-06-05 23:57:27

标签: python-3.x

此函数用于在GDP为浮点数的文本中查找GDP的最小值,然后将其返回用作GDP.txt中相关数字的索引,我得到一个错误无法转换为浮点数字符串'if float(value)< float(min_val):'当代码运行时,为了解决这个问题,我添加.split()将两个单独的GDP之间的空格分组在一起的GDP数量;该项目要求我们不使用.split(),因为它创建了一个列表,它是一个集合类型,在项目中是不允许的。因此,我正在寻找另一种方法将数字组合在每个GDP中,以允许我将它们转换为浮点数,而不创建使用函数创建的集合类型.split()

第9行,其中包含1978年至2015年的GDP值:

1        Gross domestic product                                A191RL1          3.1         0.2         3.3         5.2         5.6        -0.5        -0.2         5.4         4.6         5.6         3.2        -0.2         2.6        -1.9         4.6         7.3         4.2         3.5         3.5         4.2         3.7         1.9        -0.1         3.6         2.7         4.0         2.7         3.8         4.5         4.5         4.7         4.1         1.0         1.8         2.8         3.8         3.3         2.7         1.8        -0.3        -2.8         2.5         1.6         2.2         1.7         2.4         2.6

其中每个GDP之间的空白是12

def find_min_percent(line):
    '''Find the min percent change in the line; return the value and the index.'''
    min_val = 100000
    new_line = ''
    n = 76
    loop_count = 0
    while(True):
        n += 12
        loop_count += 1 
        new_line = line[76:n+12]
        if loop_count == 47:
            break
        for value in new_line.split():
            if value != string.punctuation:
                if float(value) < float(min_val):
                    min_val = value
                    min_val_index = line.find(min_val)
    print(min_val, min_val_index)
    return min_val, min_val_index

0 个答案:

没有答案