Python获取列表中键的键值

时间:2018-08-24 00:04:23

标签: python-3.x list dictionary

如何从字典中获取列表中的键的键值。

对于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']

4 个答案:

答案 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])