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)
添加回答
举报