Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 string.split()作为参数传递给另一个函数时不起作用_Python_String_Split - Fatal编程技术网

Python string.split()作为参数传递给另一个函数时不起作用

Python string.split()作为参数传递给另一个函数时不起作用,python,string,split,Python,String,Split,我的代码: testcases=int(input()) position=1 seconds=0 dictionary={1:".,;?", 2:"abc", 3:"def", 4:"ghi", 5:"jkl", 6:"mno", 7:"pqrs", 8:"tuv", 9:"wxyz"

我的代码:

testcases=int(input())
position=1
seconds=0
dictionary={1:".,;?", 2:"abc", 3:"def", 4:"ghi", 5:"jkl", 6:"mno", 
               7:"pqrs", 8:"tuv", 9:"wxyz", 0:" " }


def calculation(array,position):
    s=0
    print(array) # Here array shows ['1 2']
    for string in array:
        for character in string:
            if character in str(dictionary.keys()):
                if position==int(character):
                    s+=1
                else:
                    position=int(character)
                    s+=2
                print(position)
                #break
       
     return s

for test in range(testcases):
    string=input()
    if string.isspace()==False:
        seconds=calculation([string],position)
    else:
        seconds=calculation(string.split(),position) #Suppose my string="1 2"

假设我将
“12”
作为输入,那么当我在函数
calculation()
中打印字符串时,字符串显示为
['12']
,而不是
['1',2']
。为什么会发生这种情况?

这里的
[string]
将构成唯一元素
string
的列表。如果
.isspace()
为True,则可能需要调用这样的函数:

if string.isspace():
    seconds=calculation([string],position)
else:
    seconds=calculation(string.split(),position)

但是我希望字符串被拆分,只有在有空格的情况下。你在文档中读过isspace的定义吗?如果字符串中的所有字符都是空白字符,isspace将返回True。顺便说一句,您甚至不需要
if…else
块。请尝试
print('1'.split())
print('1 2 3'.split())
查看原因。