more-pythonic-code

1
2
input = ['Duration', 'F0', 'F1', 'F2', 'F3']
output = {'Duration': 0, 'F0': 1, 'F1': 2, 'F2': 3, 'F3': 4}

如何写出来?

字典推导式

1
{f:i for f, i in zip(input, range(len(input)))}

其他

1
2
3
4
5
6
7
8
9


dict(zip(input, range(len(input))))

list(enumerate(input))

dict(enumerate(input))

{f: i for i, f in enumerate(input)}

字符串翻转的办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def reverse_string3(s):
"""Return a reversed copy of `s`"""
chars = list(s)
for i in range(len(s) // 2):
tmp = chars[i]
chars[i] = chars[len(s) - i - 1]
chars[len(s) - i - 1] = tmp
return ''.join(chars)

def reverse_string2(s):
"""Return a reversed copy of `s`"""
return "".join(reversed(s))


def reverse_string1(s):
"""Return a reversed copy of `s`"""
return s[::-1]