社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python小屋 • 7 年前 • 633 次点击  

问题描述:有一个整数列表,里面有一个数字只出现了一次,而其他数字都出现了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程序设计基础》(2017年9月第5次印刷)、《Python程序设计(第2版)》(2017年9月第4次印刷)、《Python可以这样学》(2017年7月第3次印刷)系列图书之后,董付国老师新书《Python程序设计开发宝典》已于2017年8月1日在清华大学出版社出版,并于2017年9月进行了第2次印刷。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3


2、董付国老师6本Python系列图书阅读指南



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/76F0hmJkKO
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3857
 
633 次点击