专栏名称: Python小屋
清华出版社《Python程序设计》系列教材作者董付国的Python小屋。介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用。
目录
相关文章推荐
51好读  ›  专栏  ›  Python小屋

Python按位异或运算符^应用案例一则:查找只出现一次的数字

Python小屋  · 公众号  · Python  · 2017-10-22 09:27

正文

问题描述: 有一个整数列表,里面有一个数字只出现了一次,而其他数字都出现了4次,要求查找这个只出现了一次的数字。

思路要点: 一个数字和自己异或一次会变成0。

参考代码:

import random

def onlyYou (lst):
r = lst[0]
for item in lst[1:]:
r = r ^ item
return r


for i in range (100000):
lst = random.sample( range (1000), 8)
lst = lst[:-1]*4 + lst[-1:]
random.shuffle(lst)

# 传统套路

r = onlyYou(lst)

# reduce,函数式编程
rr = reduce( lambda x,y:x^y, lst, 0)
if lst.count(r)!=1 or lst.count(rr)!=1:

print (lst)
print (r, rr)


运行后程序无输出,说明思路和代码正确。


----------相关阅读----------

详解Python中的位运算符规则、原理与用法



----------喜大普奔----------

1、继《 Python程序设计基础







请到「今天看啥」查看全文