【发布时间】:2014-02-16 04:59:19
【问题描述】:
我有一个名为“UserDatabaseRecord”的类。它有一堆字段,如“用户名”、“到期日期”等。
我有两个 UserDatabaseRecord 对象列表:列表 A 和列表 B
我想验证对于列表 A 中的所有 UserDatabaseRecords,用户名字段与列表 B 中的任何 UserDatabaseRecords 用户名字段都不匹配。
我能够以非常低效的方式完成此任务:
for record_a in List_A:
for record_b in List_B:
if record_a.username == record_b.username:
print "Duplicate username: {0}".format(record_a.username)
我猜它有效。我只是想让它更高效和/或“Pythonic”。
这个问题是相关的,但最终我无法弄清楚如何将其应用于 objects 列表,仅在一个字段上进行比较:one-liner to check if at least one item in list exists in another list?
【问题讨论】:
-
是否有理由让您的班级
list支持而不是dict支持?如果它是由用户名键入的,则此操作是即时的,并且是一行。 -
@roippi 不,你说得很好。除了在项目开始时我对 Lists 更加熟悉和熟悉之外,我没有什么特别的原因。这是一个小项目,所以没什么大不了的,但肯定会在我未来的项目中更好地利用。
-
@CptSupermrkt:在这个项目中重新排列您的数据可能仍然值得。毕竟,如果是一个小项目,应该是一个简单的改变,一个很好的学习体验,对吧?
标签: python list loops foreach compare