参考链接: Python set集合 difference_update ()

1.set是一个无序且不重复的元素集合。

集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。

set和dict一样,只是没有value,相当于dict的key集合,由于dict的key是不重复的,且key是不可变对象因此set也有如下特性:

1)不重复

2)元素为不可变对象

#!/usr/bin/env python

# -*- coding:utf-8 -*-

a={11,22,33,24,8}

b={24,50,88,8}

c={24,8}

print(a)

#增加新的元素

a.add(35)

print(a)

#清空集合

a.clear()

#找a中存在,b中不存在的集合,并将其赋值给新变量c

c=a.difference(b)

print (c)

# 找a中存在,b中不存在的集合,并更新自己

a.difference_update(b)

print(a)

#discard移除元素,不存在的元素不报错

a.discard(11)

#remove移除元素,不存在的元素报错

a.remove(11)

#pop随机移除集合中的某个元素

a.pop()

print(a)

#两个集合的交集,intersection是将交集赋予给新的变量ret,intersection_update是取交集并更新自己

ret=a.intersection(b)

a.intersection_update(b)

print (ret)

print(a)

#判断c和a是否不存在交集(有交集False,无交集True)

print(c.isdisjoint(a))

#判断c是否是a的子集

print(c.issubset(a))

#判断c是否是a的父集

print(c.issuperset(a))

#合并集合a和b,得到的值覆盖a

a.update(b)

print(a)

#增加迭代

a.update([1,2,3])

print(a)

#合并不同项,并复制给新变量d

d=a.symmetric_difference(b)

print(d)

#合并不同项,并更新自己

a.symmetric_difference_update(b)

print(a)

2.三元运算(为真时的结果 if 判定条件 else 为假时的结果)

#说明,if判断条件为真时,name='kobe',否则name='byrant'

name='kobe' if 2>3 else "byrant"

print(name)3.赋值,深浅拷贝定义

直接赋值:其实就是对象的引用(别名)。

浅拷贝(copy):拷贝父对象,不会拷贝对象内部的子对象。

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

#数字和字符串的赋值和深浅拷贝之后,内存地址都一样

1 importcopy2 n1='kobe'

3 n2=n14 print(id(n1))5 print(id(n2))6 n3=copy.copy(n1)7 print(id(n3))8 n4=copy.deepcopy(n1)9 print(id(n4))

#列表,字典赋值之后内存地址一样,深浅拷贝之后,内存地址不一样

import copy

l1=['kobe',{'k1':8,"k2":24},10]

print(l1,id(l1))

l2=l1

print(l2,id(l2))

l3=copy.copy(l1)

print(l3,id(l3))

l4=copy.deepcopy(l1)

print(l4,id(l4))

#例子:

alist=[1,2,3,["a","b"]]

import copy

a=alist

c=copy.copy(alist)

d=copy.deepcopy(alist)

print (alist) #[1, 2, 3, ['a', 'b']]

print(a) #[1, 2, 3, ['a', 'b']]

print (c) #[1, 2, 3, ['a', 'b']]

print(d) #[1, 2, 3, ['a', 'b']]

alist.append(8) #列表中增加一个元素

print (alist) #[1, 2, 3, ['a', 'b'], 8]

print(a) #赋值:[1, 2, 3, ['a', 'b'], 8] 也随着增加了元素

print (c) #浅拷贝:[1, 2, 3, ['a', 'b']] 没有拷贝增加的元素

print(d) #深拷贝:[1, 2, 3, ['a', 'b']] 没变

alist[3].append("c") #列表中第三个元素中再追加一个元素

print(alist) #[1, 2, 3, ['a', 'b', 'c'], 8]

print(a) #[1, 2, 3, ['a', 'b', 'c'], 8] 也随着增加了元素

print(c) #浅拷贝:[1, 2, 3, ['a', 'b', 'c']] 里面子对象中增加了一个元素

print(d) #深拷贝:[1, 2, 3, ['a', 'b']] 没变

#结论:

# 赋值:随着原始数据的改变而改变.

# 浅拷贝:只拷贝第一层的父对象,不拷贝子对象,原始数据的子对象中的元素改变,浅拷贝里子对象的元素也会改变.

# 深拷贝:原始对象的改变不会造成深拷贝里任何子元素的改变.

[转载] python difference用法_set.difference() 的用法(python3)_python3 set集合,三元运算以及相关推荐

  1. [转载] python numpy.sqrt_python中numpy库ndarray多维数组的的运算:np.abs(x)、np.sqrt(x)、np.modf(x)等...

    参考链接: Python中的numpy.tan numpy库提供非常便捷的数组运算,方便数据的处理. 1.数组与标量之间可直接进行运算 In [45]: a Out[45]: array([[ 0, ...

  2. Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...

    一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件处理: if 条件成立:val = 1else:val = 2 改成三元运算 val = 1 if 条件成立 else 2 ...

  3. [转载] python difference用法_set.difference() 的用法(python3)_举例说明python3 set方法功能

    参考链接: Python 集合set symmetric_difference_update add(增加元素)name = set(['Tom','Lucy','Ben']) name.add('J ...

  4. [转载] python list中append()与extend()用法

    参考链接: Python list extend() 列表是以类的形式实现的."创建"列表实际上是将一个类实例化.因此,列表有多种方法可以操作.  1. 列表可包含任何数据类型的元 ...

  5. [转载] Python中while循环的基本用法

    参考链接: Python while循环 文 | 天罡君 while和for都可以使程序重复执行某一段代码(又称作循环体),区别是for循环用于针对集合中的每一个元素都一个代码块,而while循环在表 ...

  6. [转载] Python编程之np.argmax()的用法

    参考链接: Python中的numpy.argmax 用法:求的是最大值对应的索引 案例如下

  7. Python控制键盘鼠标pynput的详细用法 (转载)

    Python控制键盘鼠标pynput的详细用法 更新时间:2019年01月28日 15:15:16   作者:botoo 这篇文章主要介绍了Python控制键盘鼠标pynput的详细用法,小编觉得挺不 ...

  8. Python中的基本函数及其常用用法简析

    分享Python中的基本函数及其常用用法简析,首先关于函数的解释函数是为了达到某种目的而采取的行为,函数是可重复使用的,用来实现某个单一功能或者功能片段的代码块,简单来说就是由一系列的程序语句组成的程 ...

  9. python 中/ 与 //的作用、用法

    python 中/ 与 //的作用.用法 原创蓝莓·山药 最后发布于2019-06-21 09:27:54 阅读数 3591  收藏 展开 python语法中, / 是除法,例如:2/3 = 0.66 ...

最新文章

  1. Ubuntu18.04下安装RRStudio
  2. 如何在数据管理DMS上使用phpMyAdmin数据库(wdcp/wordpress/discuz篇)
  3. Master PDF editor在ubuntu下面的配置
  4. Servlet使用基本步骤及功能实现
  5. (十一)python3 只需3小时带你轻松入门——面向对象
  6. java 保垒机telnet,开源堡垒机系统Teleport
  7. java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
  8. python金融数据怎么获取_class类怎样在python中获取金融数据?
  9. vue复选框组件自定义对勾_vue2.0中ckeckbox(复选框)的使用心得,及对click事件和change的理解...
  10. 科技文献检索(八)——检索技术
  11. 谷歌浏览器安装失败,解决办法
  12. 90KB的3D游戏(像CS一样)[汇编界又一奇迹]绝对震撼,操作和CS一样!
  13. 向工程腐化开炮|资源治理
  14. 世界上最美的公式——欧拉公式
  15. 感恩2020,期待2021
  16. mysql求数值分位点_如何计算一组数据中任意一个数值的分位值?
  17. IP路由基础及(三种)路由信息获取方式
  18. Reverse recognition
  19. Vue和SpringBoot打造中学生家校互联系统
  20. 第十八周学习周报(20180702-20180708)

热门文章

  1. 把流量变现赚钱的一些想法
  2. 计算机网络高级技师,计算机网络管理员(高级技师)职业资格考核标准_new教案.doc...
  3. java 数组 源码_Java数组转List的三种方式及对比
  4. 500万数据mysql_mysql 500万数据库
  5. Python入门--模块,from,import,自定义模块
  6. 线段树i hate it
  7. 1500ml等于多少l_发动机1.5T、2.0T大概等于多少L?涡轮增压就一定比自然吸气好?...
  8. case when then else_SQL 优化大神玩转 MySQL函数系列_case_when 的坑
  9. IntelliJ IDEA + EmmyLua:Lua IDE的安装与使用
  10. C#基础12:嵌套类、匿名类与密封类