我试图控制一个对象中的许多变量。为此,我希望查看对象中是否存在某些单词:
jobs = csv.DictReader(open("jobsFile.csv", "rb"))
jobsWithRoles = []
for i in jobs:
if "Clerk" or "Stock" or "Sales" in jobs['Roles']:
i["RoleNum"] = 1
jobsWithRoles.append(i)
elif "Janitor" or "President" or "Driver" in jobs["Roles"]:
i["RoleNum"] = 2
jobsWithRoles.append(i)
else:
i["RoleNum"] = 5
jobsWithRoles.append(i)
问题是,无论字符串是否存在,所有内容都被分配为“1”。你知道吗
问题是你的第一个条件总是会被评估为真。你知道吗
所以,你是说:如果“职员”是真的或“股票”是真的,等等。你知道吗
Python将任何与“”不同的字符串求值为true。你知道吗
我建议您使用如下函数:
然后重写条件:
首先,我假设你的缩进不好,你的意思是
elif
和else
对应于if
。你知道吗if
中的第一个条件是"Clerk"
,它的计算结果总是True
,就像所有字符串一样。 看看这个:This可能是一个解决方案。你知道吗
现在,您的代码的计算方式如下:
此外,由于在Python中非空字符串的计算结果为
True
,if语句将始终传递,因为它正在计算非空字符串。你知道吗我想你的意思是:
或者,你可以这样做:
哪个更干净。你知道吗
相关问题 更多 >
编程相关推荐