有人可以帮我理解在这段代码中如何使用'if'语句?这是LearnStreet系列Python课程的练习:http://www.learnstreet.com/lessons/study/python#get-hint
我认为'if'语句需要布尔条件:如果X< Y,然后做Z.但我不知道布尔是如何参与这些'if'陈述的。
def run():
smiths = {"father": "Mike", "ex-wife" : "Mary", "children" : ["Bobby", "Susan"] }
jones = {"mother": "Lucy", "ex-husband": "Peter", "children": ["Michelle", "Jeff", "Evan"]}
family = {}
for key in smiths:
if key in family:
family[key]+=smiths[key]
else:
family[key]=smiths[key]
for key in jones:
if key in family:
family[key]+=jones[key]
else:
family[key]=jones[key]
keysToDel = []
for key in family:
if 'ex' in key:
keysToDel.append(key)
print keysToDel
for key in keysToDel:
del family[key]
return family
答案 0 :(得分:1)
if key in family:
此处的密钥为element
,family
为container
或sequence
您试图找到key
family
的存在
如果在if
中找到True
,则key
语句会返回container
,否则会返回False
答案 1 :(得分:1)
这些是布尔表达式,因为in
是返回True
或False
的Python关键字,具体取决于左操作数是否包含在右操作数表示的集合中。来自documentation:
运营商是否参与集合成员资格测试。如果x是集合s的成员,则x in s的计算结果为true,否则为false。 x不在s中返回s中x的否定。集合成员资格测试传统上一直与序列绑定;如果集合是序列并且包含与该对象相等的元素,则对象是集合的成员。但是,许多其他对象类型支持成员资格测试而不是序列是有意义的。特别是,词典(用于键)和集合支持成员资格测试。
答案 2 :(得分:0)
它们是布尔条件。布尔条件 看起来不像“如果X< Y”,这只是一个例子。布尔条件只是评估为true或false的任何内容。如果“key”的值在列表“family”中,则“family in family”的计算结果为true,否则为false。
答案 3 :(得分:0)
if key in family
意味着
if the container "family" contains "key"
在类C语言中,可以写成类似
的语言 if( family.contains(key) )
任何一个家庭都会包含密钥,或者不包含密钥。所以它是一个布尔表达式