Given a string, capitalize the letters within the string that occupy even indexes and odd indexes separately, and return as a list! Index 0 will be considered even.

For example, capitalize(“abcdef”) = [‘AbCdEf’, ‘aBcDeF’]!

The input will be a lowercase string with no spaces.

```def capitalize(s):
s = list(s)
li = []
stri = ''
n = 1
first = False
time = 0
while(time < 2):

if first == False:
for e in s:
if n % 2 != 0:
stri += e.upper()
else:
stri += e
n+=1
first = True
n = 1
li.append(stri)
stri = ''
time += 1
else:
for e in s:
if n % 2 == 0:
stri += e.upper()
else:
stri += e
n+=1
li.append(stri)
time += 1
return li
```

Do you know we actually can achieve the above outcome with just 3 lines of code? Provide your answer in the comment box below!

Click to rate this post!
[Total: 0 Average: 0]

1. blackswan says:

def capitalize(s):
return [”.join([c.upper() if not (i % 2) else c for i , c in enumerate(s)]),
”.join([c.upper() if i % 2 else c for i , c in enumerate(s)])]

1. IslandTropicalMen says:

🙂

2. Jonathan says:

Hi, that’s fun.
My solution in one line :

def capitalize2(s):
return [“”.join(letters) for letters in zip(*[(e1, e2) if i % 2 else (e2, e1) for (i, (e1, e2)) in enumerate(zip(s.lower(), s.upper()))])]