如何从字典中获取列表中的键的键值。
对于eaxmple,给定字典:
var newUrl string = "/#/trade/gem/GEM"
func handleRedirect(rw http.ResponseWriter, req *http.Request) {
http.Redirect(rw, req, newUrl, http.StatusSeeOther)
}
func main() {
http.Handle("/#/trade/", fs)
http.HandleFunc("/", handleRedirect) //This is the exact url I want to redirect from
http.ListenAndServe(":9000", nil)
}
和一个列表:
d = {
'a': 1,
'b': 2,
'c': 3
}
我想要输出:
l = ['a', 'c']
答案 0 :(得分:2)
我将使用set
进行快速键查找,并使用list comprehension进行如下操作:
d = {
'a': 1,
'b': 2,
'c': 3
}
l = ['a', 'c']
s = set(l)
print([v for k, v in d.items() if k in s])
输出:
[1, 3]
或者,如果您只想打印而不是创建列表:
[print(v) for k, v in d.items() if k in s]
输出:
1
3
答案 1 :(得分:0)
您可以这样做
print(d[l[0]])
或为了提高可读性
idx = l[0]
print(d[idx])
您将需要循环每个项目以获取所有值,并确保索引存在。
如果要检查字典中是否存在给定键,可以执行以下操作:
'a' in d
这将返回True,或者
'd' in d
在您的示例中,将返回False。但是无论哪种方式,您使用的值都将来自列表中的索引搜索,或者是您将该值传递给的变量。
idx in d
根据idx中存储的值将返回False或True
答案 2 :(得分:0)
这是for循环的答案:
for j in l:
print(d[j])
答案 3 :(得分:0)
List comprehensions在这种列表操作方面非常强大:
print([d[x] for x in l])