假设我有下面的格言
{'red':'boop','white':'beep','rose':'blip'}
我想把它列成这样的清单
['red','boop','end','white','beep','rose','blip','end']
要放在列表前面的键/值是一个输入。你知道吗
所以我基本上想要[first_key, first_value,end, .. rest of the k/v pairs..,end]
我写了一个蛮力的方法,但我觉得有一个更python的方法来做它(而且还因为一旦实现了代码片段将使我的代码O(n^2))
for item in lst_items
data_lst = []
for key, value in item.iteritems():
data_lst.append(key)
ata_lst.append(value)
#insert 'end' at the appropiate indeces
#more code ...
有没有什么好办法?你知道吗
下面的依赖于^{} 将项展平到单个列表中。我们从
chain
中提取前两个值,然后使用它们构建一个新的列表,并用其余的值扩展该列表。你知道吗如果您首先知道所需的键,而不关心其余的键,则可以使用延迟计算的生成器表达式将其从展开列表中移除。你知道吗
第一个键在
first
变量中指定:印刷品:
您可以使用
enumerate
并检查当前索引:然而,您最初的想法,首先链接键和值,然后插入
"end"
项,也不会有O(n²)。它将是O(n)后跟另一个O(n),因此仍然是O(n)。你知道吗相关问题 更多 >
编程相关推荐