繁体   English   中英

插入以从列表中dict列表中的多个键,并在一行中包含for循环-dict.setdefault

[英]Insert to dict multiple keys from list with for loop in one line - dict.setdefault

我试图这样做:

ip_dict = dict()
ip_list = ["10.0.0.1", "10.0.0.2"]
ip_dict.dict.setdefault(i for i in ip_list, 0)

我得到这个例外:

  File "<stdin>", line 1
SyntaxError: Generator expression must be parenthesized if not sole argument

我可以在一行中执行此操作,还是必须在两行中执行此操作?

您可以将单行主体的for循环压缩为一行:

ip_dict = dict()
ip_list = ["10.0.0.1", "10.0.0.2"]
for i in ip_list: ip_dict.setdefault(i, 0)

但是,如果您真的想要精确的代码效果, dict.fromkeys只需要dict.fromkeys

ip_list = ["10.0.0.1", "10.0.0.2"]
ip_dict = dict.fromkeys(ip_list, 0)

您可以使用dict理解:

ip_list = ["10.0.0.1", "10.0.0.2"]
ip_dict = {k:0 for k in ip_list}

对于更完整的示例,如果您有默认值列表

ip_list = ["10.0.0.1", "10.0.0.2"]
ip_default = [0, 1]
ip_dict = {k: v for k, v in zip(ip_list, ip_default)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM