我对python很陌生,我正在努力解决如何循环以下问题的逻辑。所以,我有一个简单的列表,就像这样:
cat_list = [
["cambridge university", "cricket", "cu c url name"],
["cambridge university", "football", "cu f url name"],
["cambridge university", "golf", "cu g url name"],
["cambridge university", "default", "cu d url name"],
["oxford university", "cricket", "ou c url name"],
["oxford university", "football", "ou f url name"],
["oxford university", "golf", "ou g url name"],
["oxford university", "default", "ou d url name"],
["hertford university", "default", "hu d url name"],
]
然后,我有两个字符串x
并y
持有:
x = "cambridge university"
y = "nfl" # this can change
现在,我想检查(使用 for 循环)是否匹配一行,x
如果匹配,我想打印相应的 url 值(cat_list 的第三列)。此外,如果它在 cat_list 中找不到(但找到),我想转到它的相应值并再次打印出 cat_list 中相应的 url 值。y
cat_list
y
x
default
因此,对于x
以上y
内容,我希望 for 循环输出cu d url name
。
然而,如果说x
,y
x = "oxford university"
y = "cricket"
然后我喜欢 for 循环输出ou c url name
。
抱歉,如果这是一个 101 问题 - 认为我只是非常困惑:(
编辑
因此,显然,可以运行一个简单的循环,如 qwwqwwq 所述:
for item in cat_list:
if item[0] == x and item[1] == y:
print item[2]
for item in cat_list:
if item[0] == x and item[1] == 'default':
print item[2]
但是,x = "oxford university" y = "cricket"
以上两者if
都会得到满足 - 这不是我想要的。“默认”值仅应在y
未找到对应的运动()的情况下打印x