我正在运行以下代码:
if course_name.lower() in [x.split('.')[0].lower() for x in user_courses]:
do_code()
当 do_code() block 运行时,我知道 course_name.lower() 在列表中匹配。有没有办法在 course_name.lower() 匹配的列表中获取 x 的值?如您所见,因为我在创建列表时使用了 [0] 索引
[x.split('.')[0].lower() for x in user_courses]
我想要它匹配的 user_courses 的整个值,而不仅仅是 course_name.lower() 包含的零索引值。
谢谢!
请您参考如下方法:
你可以反过来做:
lower_name = course_name.lower()
matches = [x for x in user_courses if x.split('.')[0].lower() == lower_name]
if matches:
match = matches[0]
# match is the matched name
也就是说,根据与 course_name.lower() 的相等性过滤您的列表理解。如果列表中还有任何内容,则它将等于 course_name.lower()。 (理论上列表中可能还有多个项目,但如果是这样的话,它们都是相等的,所以我们可以只取第一个。)
我从列表理解中提取了 course_name.lower() 的计算,以避免重复重新计算它。
