python基础:3.高级运算符
1.异或运算
十进制的异或运算,先转成二进制进行异或,按位进行比较,对应位置相同则为0,对应位置不同则为1,,再从异或结果转成十进制。
python中:
1 ^ 1 = 0
1 ^ 2 = 3
1 ^ 0 = 1
0 ^ 1 = 1
1 的二进制0000 0001
2 的二进制0000 0010
1 ^ 2 的二进制是:0000 0011 换算成十进制为3
异或的交换律 1 ^ 0 = 0 ^ 1
异或的结合律 1 ^ 2 ^ 3 = 1 ^ (2 ^ 3)
一个非空整数列表,除了某个元素只出现一次外,其余每个元素均出现两次,找到只出现一次的元素,leetcode136 例如 [1,2,3,4,3,2,1]
异或的结合律和交换律
1 ^ 2 ^ 3 ^ 4 ^ 3 ^ 2 ^ 1 = 1 ^ 1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 = 0 ^ 4 = 4 def solve(li):
temp = li[0]
for i in range(1,len(li)):
temp = temp ^li[i]
print(temp) 结果:4 一般解法:
def solve(li):
for i in range(len(li)):
ret = li.count(li[i])
if ret == 1:
print(li[i]) solve([1,2,3,4,3,2,1]) 结果:4
1 - n 放在含有 n + 1 个元素的列表中,只有唯一的一个元素值重复,其他均只出现一次,每个列表元素只能访问一次,设计一个算法,将它找出来,不能使用辅助存储空间 Leetcode 287
分析:找出重复的元素。
1-5个元素的列表-- [1,2,3,4,5]
5+1个元素的列表---[0,1,2,3,4,5]
[1,2,3,3,4,5] 找出3
同样的异或结合律和交换律
0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5
思路:一个数奇数次异或自己就是本身,偶数次异或自己就是0,要找出3,就让3自己异或自己奇数次。其他数异或自己偶数次,就可以了。 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5 = 1 ^ 1 ^ 2 ^ 2 ^ 0 ^ 3 ^ 3 ^ 3 ^ 4 ^ 4 ^ 5 ^ 5 = 3 def sove(li):
ret = 0
temp_li = [x for x in range(0,len(li)]
for i in range(0, len(temp_li))
ret = ret ^ li[i] ^ temp_li[i]
print(ret) sove([1,2,3,3,4,5]) 结果:3
2.按位运算
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
a = 1111 0100
b = 1001 1011
a & b = 1001 0000
python基础:3.高级运算符的更多相关文章
- python基础语法(运算符及优先级)
python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
- python基础之七种运算符
废话不多说,上节说的是数据类型,本篇讲讲数据运算. 在算式"1+2"中,"1"和"2"被称为操作数,"+"被称为运算符 ...
- python基础语法_7运算符
http://www.runoob.com/python3/python3-basic-operators.html#ysf7 目录 Python语言支持以下8类型的运算符: 算术运算符(-,+,*, ...
- Python之路,Day8 - Python基础 面向对象高级进阶与socket基础
类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的 ...
- python基础--数据类型、运算符、流程控制
原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143165862 ...
- python基础 - 变量与运算符
变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type ...
- Python 基础1 - 位运算符
引言 本文主要介绍位运算符,实际上Python有以下7类运算符: [赋值运算符].[比较运算符].[算术运算符].[逻辑运算符].[身份运算符].[成员运算符].[位运算符] 位运算符 按位运算符是把 ...
- python基础一(运算符/变量定义/数据类型)
一.运算符 1.算数运算符 (1)加(+) 注意:字符串与整数之间不能进行相加,需要通过str()或int()进行转换数据类型 整数与整数相加 >>> 1 + 1 2 >> ...
- Python基础之基本运算符
目录 1. 算数运算符 2. 比较运算符 3. 赋值运算符 4. 逻辑运算符 5. 身份运算 6. 运算符优先级 1. 算数运算符 常用算术运算符使用方法如下: x = 5 y = 2 a = x + ...
随机推荐
- 20180809-Java继承
// A.java public class A{ private int i; protected int j; public void func(){ }} // B.javapublic cla ...
- CF1182 D Complete Mirror——思路
题目:http://codeforces.com/contest/1182/problem/D 很好的思路是从度数为1的点和直径来入手. 找一条直径.看看直径的两个端点是否合法. 如果都不合法,那么根 ...
- linux之yum源的RPM软件包管理
1.yum源的配置文件 路径:vim /etc/yum.repos.d/CnetOS-Base.repo 文件格式: 2.yum查询 yum list 查询所有可用软件包 yum search 包名 ...
- eureka注册中心wro.css wro.js 404
注册中心和配置中心放在一个module里面,如果不配置配种中心的访问前缀,会被config拦截.所以改动如下: package com.cloud.stagging.lhcloudeureka; im ...
- POJ 1066 Treasure Hunt [想法题]
题目链接: http://poj.org/problem?id=1066 --------------------------------------------------------------- ...
- P2239螺旋矩阵
传送 看到这数据范围,显然咱不能暴力直接模拟(二维数组开不下,而且会T掉) 我们目前有两种选择: 1.优化暴力 走这边(jyy tql%%%) 2.数学做法 我们看一下题目中的那个矩阵 我们能不能找 ...
- 常用的Android关键词定位方法
1字符串,特征字 根据程序运行中出现的特征字词进行搜索,从而获取定位到程序的相关位置之中.以前用 得比较多,不过现在一般难以找到想要的关键词.有时候需要对特征字进行拆分来进行搜索.才 能获得一点提示. ...
- Eclipse总是自动跳到ThreadPoolExecutor
出现这种状况是因为Eclipse默认开启挂起未捕获的异常(Suspend execution on uncaught exceptions),只要关闭此项就可以了.解决方法:在eclipse中选择Wi ...
- jmeter之非GUI启动与执行脚本
启动jmeter的图形界面可以从dos窗口输命令启动:图形界面还是比较占资源的,这时候可以通过dos窗口来执行脚本,获取性能结果 目录 1.dos窗口启动jmeter图形界面 2.dos窗口执行脚本, ...
- Mac获取Jenkins管理员初始密码
前言 最近在配置jenkins环境,但是启动jenkins后,进入jenkins解锁页时,需要自己获取初始密码. 尝试在访达中输入地址搜索,结果无该文件.后来百度上查看多篇文章后,终于获取到了初始密码 ...