Python Strip正在跳过第二个循环的字符
出于某种原因,在数组中的第二个循环之后,代码出于某种原因跳过了一个字符 我认为问题出在这里: 对于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 结果是: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拆
['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对的更简单和更快版本。