Bla*_*ght 5 python dictionary python-3.x
sample = {('red', 'blue', 'purple') : 'color', 'redo' : 'again', 'bred' : 'idk', 'greeting' : ('hi', 'hello')}
def search(c):
if c in sample.keys():
return sample[c]
print(search('red'))
Run Code Online (Sandbox Code Playgroud)
这返回None. 我知道我可以将它们分开并制作具有相同值的多个键,但如果可以的话,我真的很想避免这样做。我可以吗?
而且我还希望能够搜索值(也可能是元组)并获得相应的键。
使用iteritems()在这里会对您有所帮助。按如下方式更新您的search()方法。应该可以正常工作。
def search(c):
for k, v in sample.iteritems():
if type(k) in [list, tuple, dict] and c in k:
return v
elif c == k:
return v
Run Code Online (Sandbox Code Playgroud)
如果c字典中多次出现 ,
def search(c):
found = [ ]
for k, v in sample.iteritems():
if type(k) in [list, tuple, dict] and c in k:
found.append(v)
elif c == k:
found.append(v)
return found
Run Code Online (Sandbox Code Playgroud)
这将返回字典中匹配值的列表。
希望这可以帮助!:)
don*_*mus -1
如果您不需要按整个元组进行搜索('red', 'blue', 'purple'),那么只需稍微不同地构建您的字典即可:
sample = {e: v for k, v in {('red', 'blue', 'purple') : 'color'}.items()
for e in k}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |