这很奇怪:
def separatewordsbycaps(word):
"""This custom template will add space to fields when it finds a capital letter.
Ex. InstrumentDeployment --> Instrument Deployment"""
wordList = list(word)
spaceIndexes = [index for index, char in enumerate(wordList) if char.isupper() and index!=0]
offset = 0
space = "f"
for idx, val in enumerate(spaceIndexes):
print "1."+wordList[val+offset-1]+"!=" + space +"= " + str(wordList[idx+offset-1] != space)
print type(wordList[val+offset-1])
print type(space)
if wordList[idx+offset-1] != space:
wordList.insert(val+offset, space)
offset += 1
return ''.join(wordList)
print separatewordsbycaps("InstrumentfOutputfVariables")
输出:
1.f!=f= True
<type 'str'>
<type 'str'>
1.f!=f= True
<type 'str'>
<type 'str'>
InstrumentffOutputffVariables
我搜索互联网寻求帮助,也许我的代码有问题。请帮忙。
答案 0 :(得分:1)
您没有比较您认为比较的内容。
你打印:
wordList[val+offset-1] != 'f'
但实际上你在比较:
wordList[idx+offset-1] != 'f'
请注意idx
和val
之间的差异。
对于您的输入,第一个val
为11
,idx
为0
,因此您打印的wordList[val+offset-1]
确实是'f'
因此等于space
中的值,但实际上是与wordList[idx+offset-1]
's'
进行比较。 's' != 'f'
确实是True
。