Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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 Strip正在跳过第二个循环的字符_Python_Arrays_Python 3.x - Fatal编程技术网

Python Strip正在跳过第二个循环的字符

Python Strip正在跳过第二个循环的字符,python,arrays,python-3.x,Python,Arrays,Python 3.x,出于某种原因,在数组中的第二个循环之后,代码出于某种原因跳过了一个字符 我认为问题出在这里: 对于rangeintlenShortArray中的字: localString=LongArray[word] 印刷字 如果localString[:2]==ShortArray[word]: printLongArray[word] 印刷字 以下是完整的代码: 克莱伦=[Rood、Geel、Groen、Blauw、Wit、Paars、Oranje、Zwart] KleurenShort=[] def拆

出于某种原因,在数组中的第二个循环之后,代码出于某种原因跳过了一个字符

我认为问题出在这里:

对于rangeintlenShortArray中的字: localString=LongArray[word] 印刷字 如果localString[:2]==ShortArray[word]: printLongArray[word] 印刷字 以下是完整的代码:

克莱伦=[Rood、Geel、Groen、Blauw、Wit、Paars、Oranje、Zwart] KleurenShort=[] def拆分阵列字符串: 对于rangeintlenstring/2中的长度: KleurenShort.appendstring[:2] printKleurenShort string=string.stripstring[:2] 返回KleurenShort def tekst_naar_kleurstring: 返回0 def MatchFirst2LittersShortArray,LongArray: 对于rangeintlenShortArray中的字: localString=LongArray[word] 印刷字 如果localString[:2]==ShortArray[word]: printLongArray[word] 印刷字 匹配First2LittersSplitarrayRogeGrbl,kleuren 结果是:

['Ro']
['Ro', 'Ge']
['Ro', 'Ge', 'rB']
['Ro', 'Ge', 'rB', 'l']
何时应该:

['Ro']
['Ro', 'Ge']
['Ro', 'Ge', 'Gr']
['Ro', 'Ge', 'Gr', 'Bl']

问题在于string.strip方法的使用

在删除输入字符串中“a”和“b”的每个实例时给出“cd”。通过索引,您只需删除输入字符串的前两个字母:

“abcde”[2:]将给出“cde”

在您的代码中实现的更正版本为:

kleuren = ["Rood","Geel","Groen","Blauw","Wit","Paars","Oranje","Zwart"]
KleurenShort = []

def splitArray(string):
    for lenght in range(int(len(string) / 2)):
        KleurenShort.append(string[:2])
        print(KleurenShort)
        string = string[2:]
    return KleurenShort

def tekst_naar_kleur(string):
    return 0


def matchFirst2Letters(ShortArray,LongArray):
    for word in range(int(len(ShortArray))):
        localString = LongArray[word]
        #print(word)
        if localString[:2] == ShortArray[word]:
            print(LongArray[word])
            print(word)

matchFirst2Letters(splitArray("RoGeGrBl"),kleuren)
哪个输出

['Ro']
['Ro', 'Ge']
['Ro', 'Ge', 'Gr']
['Ro', 'Ge', 'Gr', 'Bl']
Rood
0
Geel
1
Groen
2
Blauw
3
根据下面链接的注释的答案,您的splitArray函数将变为:

def splitArray(string):
    return [string[i:i+2] for i in range(0, len(string), 2)]

问题在于string.strip方法的使用

在删除输入字符串中“a”和“b”的每个实例时给出“cd”。通过索引,您只需删除输入字符串的前两个字母:

“abcde”[2:]将给出“cde”

在您的代码中实现的更正版本为:

kleuren = ["Rood","Geel","Groen","Blauw","Wit","Paars","Oranje","Zwart"]
KleurenShort = []

def splitArray(string):
    for lenght in range(int(len(string) / 2)):
        KleurenShort.append(string[:2])
        print(KleurenShort)
        string = string[2:]
    return KleurenShort

def tekst_naar_kleur(string):
    return 0


def matchFirst2Letters(ShortArray,LongArray):
    for word in range(int(len(ShortArray))):
        localString = LongArray[word]
        #print(word)
        if localString[:2] == ShortArray[word]:
            print(LongArray[word])
            print(word)

matchFirst2Letters(splitArray("RoGeGrBl"),kleuren)
哪个输出

['Ro']
['Ro', 'Ge']
['Ro', 'Ge', 'Gr']
['Ro', 'Ge', 'Gr', 'Bl']
Rood
0
Geel
1
Groen
2
Blauw
3
根据下面链接的注释的答案,您的splitArray函数将变为:

def splitArray(string):
    return [string[i:i+2] for i in range(0, len(string), 2)]

你能解释一下,代码应该做什么吗?你能解释一下,代码应该做什么吗?另请参阅,以获得如何将字符串拆分为2对的更简单和更快版本。另请参阅,以获得如何将字符串拆分为2对的更简单和更快版本。