3 回答

TA貢獻1911條經驗 獲得超7個贊
enumerate() 給出當前循環的索引:
s = 'committee'
"".join([x.upper() if i%2!=0 else x for i,x in enumerate(s)])
Out[4]: 'cOmMiTtEe'

TA貢獻1804條經驗 獲得超2個贊
您可以使用enumerate從可迭代對象中獲取索引和值:
for idx, x in enumerate(mylist):
if idx % 2 == 0:
mystring = mystring + x.lower()
else:
mystring = mystring + x.upper()

TA貢獻1799條經驗 獲得超6個贊
您根本不需要知道確切的索引。只需翻轉一面旗幟即可:不-是-否-是-否-等等。
def myfunc(mylist):
mystring = ''
upper = False
for x in mylist:
mystring = mystring + (x.upper() if upper else x.lower())
upper = not upper
return mystring
請注意,以這種方式構造字符串效率很低(將“Shlemiel the Painter”搜索到谷歌)。改良版:
def myfunc(mylist):
mychars = []
upper = False
for x in mylist:
mychars.append(x.upper() if upper else x.lower())
upper = not upper
return ''.join(mychars)
添加回答
舉報