我的示例字典是这样的
data_dictionary = {1:'blue',2:'green',3:'red',4:'orange',5:'purple',6:'mauve'}
data_dictionary 可以有更多的元素,这取决于传入的数据。第一个值是我们所说的 payload_index。我总是得到 payload_index 1 到 4 。
我需要从中整理出一份 list 。很简单:
for payload_index in data_dictionary :
assembled_packet.append(data_dictionary[payload_index])
我的问题是我需要始终跳过第三个元素。我想我可以做一个 if 但这效率很低:
for payload_index in data_dictionary :
if payload_index <> 3:
assembled_packet.append(data_dictionary[payload_index])
我可以分两步完成并完成前三个元素,但问题是我无法弄清楚如何获得其余部分,因为第三个元素之后的元素数量各不相同。我尝试使用一个不可能高的索引(如下),但显然失败了:
#get element 1 and two
for index in range(0,3):
assembled_packet.append(data_dictionary[index])
#get element 1 and two
for index in range(4,999):
assembled_packet.append(data_dictionary[index])
有什么想法吗?谢谢!
最佳答案
效率低下?这似乎是一个过早的优化!只需使用普通代码:
for payload_index in data_dictionary:
if payload_index != 3:
assembled_packet.append(data_dictionary[payload_index])
甚至更好:
assembled_packet = [data_dictionary[index] for index in data_dictionary if index != 3]
当然,你可以简单地做:
>>> d = {1:'blue',2:'green',3:'red',4:'orange',5:'purple',6:'mauve'}
>>> d.pop(3)
'red'
>>> list(d.values()) # in py3k; in python-2.x d.values() would do
['blue', 'green', 'orange', 'purple', 'mauve']
附言<>
早就被弃用了。
关于python - 使用 Python 仅访问字典的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292509/