我想多次通过字典映射一个值,并记录中间值.由于list.append()没有返回值,下面是我能够想出的最好的.有没有更好的方法在Python中执行此操作,可能使用列表推导或递归?
def append(v, seq):
seq.append(v)
return v
def multimap(value, f, count):
result = []
for _ in range(count):
value = append(f[value], result)
return result
print( multimap('a', {'a': 'b', 'b': 'c', 'c': 'd', 'd': 'a'}, 4) )
Run Code Online (Sandbox Code Playgroud)
输出:
['b', 'c', 'd', 'a']
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用生成器,而不必处理列表:
def multimap(value, f, count):
for _ in range(count):
value = f[value]
yield value
print(list(multimap('a', {'a': 'b', 'b': 'c', 'c': 'd', 'd': 'a'}, 4)))
Run Code Online (Sandbox Code Playgroud)