我正在运行以下代码:
if course_name.lower() in [x.split('.')[0].lower() for x in user_courses]:
do_code()
Run Code Online (Sandbox Code Playgroud)
当do_code()块运行时,我知道course_name.lower()在列表中匹配.有没有办法在course_name.lower()匹配的列表中获取x的值?如您所见,因为我在创建列表时使用[0]索引
[x.split('.')[0].lower() for x in user_courses]
Run Code Online (Sandbox Code Playgroud)
我想要匹配的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
Run Code Online (Sandbox Code Playgroud)
也就是说,根据相等性过滤列表理解course_name.lower().如果列表中还剩下任何内容,那么它将相等course_name.lower().(理论上可以在列表中留下多个项目,但如果是这样,它们都是相同的,所以我们可以选择第一个.)
我从course_name.lower()列表理解中抽出计算,以避免反复重新计算.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |