在Hackerrank Sparse Arrays挑战中,我有两个字符串列表,S和Q.对于Q的每个元素,我需要计算S中匹配字符串的数量。我几乎有这个工作,但我想使用else语句来说明找不到匹配字符串的情况。下面是我的代码,通过查看关于该主题的其他堆栈问题,我不清楚为什么这不起作用(其他地方有语法错误,但是否则所有计数都正确完成)虽然看起来我可能需要将ifhis语句的特定部分作为父母。
res=[S.count(s) for s in Q if s in S else 0]
答案 0 :(得分:1)
你的语法有点纠结,就是这样。你需要:
res=[S.count(s) if s in S else 0 for s in Q]
但你实际上并不需要那个,你可以做到 -
res=[S.count(s) for s in Q]
甚至只是
res = list(map(S.count, Q)]
如果你想要花哨。
对于Q中不在S中的任何值,您将得到0。