st = "abXabXAbX"
ch = "A"
st = st.lower()
ch = ch.lower()
for i in st:
if (i==ch):
print st.find(i)
我想在字符串「st」中將字符「ch」以大寫和小寫的方式進行定位。 for循環在檢測到第一個「a」時陷入困境,如何讓循環移動來檢查字符串的其餘部分?如何讓一個循環繼續向下一個字符串?
st = "abXabXAbX"
ch = "A"
st = st.lower()
ch = ch.lower()
for i in st:
if (i==ch):
print st.find(i)
我想在字符串「st」中將字符「ch」以大寫和小寫的方式進行定位。 for循環在檢測到第一個「a」時陷入困境,如何讓循環移動來檢查字符串的其餘部分?如何讓一個循環繼續向下一個字符串?
>>> st = "abXabXAbX".lower()
>>> ch = "A".lower()
>>> [ ix for ix,item in enumerate(st) if item == ch]
[0, 3, 6]
你不需要'''.join(st).split()' - 你可以做'enumerate(st)'。 – chthonicdaemon 2014-10-28 08:01:41
st = "abXabXAbX"
ch = "A"
st = st.lower()
ch = ch.lower()
pos = st.find(ch)
print(pos)
while pos >= 0:
pos=st.find(ch,pos+1)
if pos>-1:
print(pos)
這會給你所有位置
更優雅的w/o第一次打印,然後'while pos> = 0:print(pos); pos = st.find(ch,pos + 1' – Korem 2014-10-28 16:51:05
謝謝你,這幫了我很多。 – 2014-11-03 02:09:22
的循環不是「卡住」,你只是用一種奇怪的方式'find'功能。 – kirelagin 2014-10-28 08:05:44
看看一些解決方案[這裏](http://stackoverflow.com/questions/4664850/find-all-occurrences-of-a-substring-in-python) – chthonicdaemon 2014-10-28 09:31:38
如果你發現任何的有用的答案,請接受其中之一。 – Korem 2014-10-31 12:07:41