[英]Not to print None for keys without values in a dictionary
A dictionary was created with keys.字典是用键创建的。 Later some of the keys got values updated.
后来一些键更新了值。
When printing the keys in a For loop, the keys without values, prints None.在 For 循环中打印键时,没有值的键打印 None。
ma_dict = dict.fromkeys(["David","Mike","Kate","Lilly"])
ma_dict.update({"David" : "Front", "Mike" : "Middle"})
for each in ["David","Mike","Kate","Lilly"]:
print (each, ma_dict[each])
It prints:它打印:
David Front
Mike Middle
Kate None
Lilly None
What is the way not to print the None?不打印 None 的方法是什么? Thank you.
谢谢你。
# outputs wanted
David Front
Mike Middle
Kate
Lilly
Not to use an If statement, such as:不使用 If 语句,例如:
ma_dict = dict.fromkeys(["David","Mike","Kate","Lilly"])
ma_dict.update({"David" : "Front", "Mike" : "Middle"})
for each in ["David","Mike","Kate","Lilly"]:
if ma_dict[each] != None:
print (each, ma_dict[each])
else:
print (each)
If it's just for printing, you might consider using a dictionary comprehension to replace None
with empty strings:如果只是为了打印,您可以考虑使用字典理解将
None
替换为空字符串:
d = {k: ma_dict[k] if ma_dict[k] is not None else "" for k in ma_dict}
for k in d:
print(k, d[k])
David Front
Mike Middle
Kate
Lilly
Inspired by @masasa:灵感来自@masasa:
from collections import defaultdict
ma_dict = defaultdict(str)
ma_dict.update({"David" : "Front", "Mike" : "Middle"})
for each in ["David","Mike","Kate","Lilly"]:
print (each, ma_dict[each])
It prints:它打印:
David Front
Mike Middle
Kate
Lilly
I think using if
is appriopate here, but if you must Not to use an If statement AT ANY PRICE then do我认为在这里使用
if
是合适的,但是如果您必须不以任何价格使用 If 语句,那么请执行
ma_dict = dict.fromkeys(["David","Mike","Kate","Lilly"])
ma_dict.update({"David" : "Front", "Mike" : "Middle"})
for each in ["David","Mike","Kate","Lilly"]:
print(each, [ma_dict[each],""][ma_dict[each] is None])
output输出
David Front
Mike Middle
Kate
Lilly
Since you don't want to use an if
condition and As @masasa has suggested, You could use a defaultdict
.由于您不想使用
if
条件并且正如@masasa 所建议的那样,您可以使用defaultdict
。
from collections import defaultdict
ma_dict = defaultdict.fromkeys(["David","Mike","Kate","Lilly"], '')
ma_dict.update({"David" : "Front", "Mike" : "Middle"})
for each in ["David","Mike","Kate","Lilly"]:
print (each, ma_dict.get(each))
David Front
Mike Middle
Kate
Lilly
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.