2024-05-23 21:25:00 发布
网友
我需要一个小Python程序的结构来保存一个列表,最多500个名字,每个名字有一个数字。名字是唯一的,但是数字会重复(经常)。我首先想到的是dictionary,但我还需要能够搜索数字,例如,我需要将所有2更改为3。你推荐什么?在
2
3
我不熟悉Python,所以我肯定忽略了一个简单的解决方案。在
("Spiderman",1) ("Dr. House",2) ("Jon Skeet",1)
字典会有用的。如果需要更改存储值:
>>> d = {"SpiderMan":1, "Dr.House":2, "Jon Skeet":1} >>> for k,v in d.items(): ... if v == 1: ... d[k] = v+1 ... ... ... >>> d {'SpiderMan': 2, 'Dr.House': 2, 'Jon Skeet': 2}
这将是一个线性搜索(O(n))。你需要比这更好的吗?在
您可以使用dict,然后按值搜索,如下所示:
names = {"Spiderman":1, "Dr. House":2, "Jon Skeet":1} resulting_keys = [k for k, v in names.iteritems() if v == 1] # returns ['Spiderman', 'Jon Skeet']
然后你可以做一些类似的事情:
现在将名称更新为:
{'Jon Skeet': 2, 'Dr. House': 2, 'Spiderman': 2}
字典会有用的。如果需要更改存储值:
这将是一个线性搜索(O(n))。你需要比这更好的吗?在
您可以使用dict,然后按值搜索,如下所示:
然后你可以做一些类似的事情:
^{pr2}$现在将名称更新为:
相关问题 更多 >
编程相关推荐