Python 用 list 做 AND OR 运算

HackerRank String Validators 的笔记和题解。Python all() 和 any() 用法讲解。

然

Table of Contents

简介

这篇文章是在我做 String Validators (HackerRank) 时写下的,都已经忘了怎么用 Python 的 list(列表)做 AND, OR 运算了。

用 all() 和 any()

其实很简单,AND 就是用 all(),OR 就是用 any()。

l = [True, True, True]
m = [True, False, False]

print(all(l))
print(any(m))
输出:
True
True

题解

这题我用了 list comprehension,每次能用出来都很开心。

if __name__ == '__main__':
    s = input()
    print(any(s[i].isalnum() for i in range(len(s))))
    print(any(s[i].isalpha() for i in range(len(s))))
    print(any(s[i].isdigit() for i in range(len(s))))
    print(any(s[i].islower() for i in range(len(s))))
    print(any(s[i].isupper() for i in range(len(s))))

不过这里其实不需要 s[i] 和 for range,因为 string 也是可以直接 for c in string 的,不需要 indexing。

所以更好的题解应该是:

if __name__ == '__main__':
    s = input()
    print(any(c.isalnum() for c in s))
    print(any(c.isalpha() for c in s))
    print(any(c.isdigit() for c in s))
    print(any(c.islower() for c in s))
    print(any(c.isupper() for c in s))
HackerRankPython简单难度

Comments