Python学习笔记(三)

set

1.set用于存储一组不重复的key值集合,但是不存储其value。

2.set有两种创建方式:

  • 用set函数,参数是list集合,例如:s=set([1,2,3,4,5]);
  • 用大括号包起来的集合字面量,例如: s={1,3}。

3.set常用操作

  • add(key)方法向set中添加元素,如果元素已经存在则不会生效
  • remove(key)方法可以删除元素。
  • | 操作符可以取集合并集
  • & 操作符取集合交集
  • - 求两个集合的差
  • ^求两个集合的异或。
# 创建set
a_set = {1, 2} # 单值set不需要加逗号
a_set = set(a_list)
# 创建空set
a_set = set()
# 创建空字典
a_set = {}  #由于从 Python 2 沿袭而来历史的古怪规定,不能使用两个花括号来创建空集合
# 添加值
a_set.add(4) # 接受单个参数
a_set.update({2, 4, 6})
a_set.update([10, 20, 30])
a_set.update({3, 6, 9}, {1, 2, 3, 5, 8, 13})
# 删除值
a_set.discard(10)  # 若元素不存在则什么也不做
a_set.remove(21) # 若元素不存在则报错
a_set.pop() # 随机删除值(set无序),若集合为空则报错
a_set.clear() # 清空set,等价于a_set = set()
# 检测值
30 in a_set
# 合并set
a_set.union(b_set)   # 返回一个新set
a = a | b # 与上一条等效,下同
# 两个set的交集
a_set.intersection(b_set)   # 返回一个新set
a = a & b
# 剔除set
a_set.difference(b_set)  # 返回a_set中不包含b_set值的新set
a = a - b
# 非交集
a_set.symmetric_difference(b_set)  # 返回仅在其中一个set中出现的值的新set
a = a ^ b
# 对称性, 结果都为true
# 集合是无序的。任何两个包含所有同样值(无一遗漏)的集合可认为是相等的
b_set.symmetric_difference(a_set) == a_set.symmetric_difference(b_set)
b_set.union(a_set) == a_set.union(b_set)
b_set.intersection(a_set) == a_set.intersection(b_set)
# 检测子集
a_set.issubset(b_set) # 前者是否是后者的子集
b_set.issuperset(a_set) # 前者是否是后者的父集

三目运算符 

a=1
b=2
if a<b:                     #一般条件语句的写法
    k=a
else:
    k=b

c=a if a<b else b         #三目运算符的写法 

深拷贝浅拷贝

1、数字和字符串

对于数字和字符串而言,深拷贝,浅拷贝没有什么区别,因为对于数字数字和字符串一旦创建便不能被修改,假如对于字符串进行替代操作,只会在内存中重新生产一个字符串,而对于原字符串,并没有改变,基于这点,深拷贝和浅拷贝对于数字和字符串没有什么区别。

2、字典、列表等数据结构

浅拷贝

深拷贝

函数

1、定义

定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

定义函数的格式为:

def 函数名(参数1,参数2,...,参数n):

    函数体(语句块)

2、参数

普通参数
普通参数即是用户在调用函数是填入的参数,且参数位置必须与参数保持一致。
def foo(p1,p2,p3,...)

指定参数
指定参数即在用户调用函数的时候不需要按照函数中参数的位置中所填写,指定参数是需要制定参数对应的值。
def foo(p1=value1,p2=value2,...)

默认参数
默认参数可以写在定义参数的后面,如果用户调用函数是没有制定参数,那么就会用默认参数,如果用户指定了参数,那么用户指定的参数就会代替默认参数。
def foo(p1,p2=value2,...)

动态参数
动态参数可以接受用户输入的任何参数,包括字典、列表、元组等数据类型。
动态参数——传输元组
def foo(*args)
动态参数——传输字典
def foo(**args)
def foo(x,y=2,*args,**args)

时间: 2024-12-21 04:50:04

Python学习笔记(三)的相关文章

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python学习笔记三---segmaphore信号量学习

# *-* coding=gb2312 *-* ''' 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数. 每次有一个线程获得信号量时,计数器-1.若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量. ''' import threading import random import time class MyThread(threading.Thread): availableTables=[

Python学习笔记三)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy

Python 学习笔记三

笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像argv那样 创建脚本小程序 基础的函数用法: #-*- coding:utf-8 -*- def print_two(*args): arg1,arg2=args print "arg1:%s arg2:%s" %(arg1,arg2) def print_two_again(arg1,arg

python学习笔记(三):文件操作和集合

这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 寂寞当然有一点 你不在我身边 总是特别想念你的脸 距离是一份考卷 测量

Python学习笔记三:模块

一:模块 一个模块就是一个py文件,里面定义了一些业务函数.引用模块,可以用import语句导入.导入模块后,通过 模块.函数名(参数)  来使用模块中的函数.如果存在多个同名模块,则前面模块名需要加上包路径. 如果我们只需导入模块中的几个函数,可以用 from 模块名 import 函数名,函数名,..的形式来导入,这样就可以在代码中使用函数名来调用函数,无需路径. 为了避免同名冲突,还可以在导入函数的同时设置别名,from 模块名 import 函数名 as 别名,然后在代码中就可以使用别名

Python学习笔记三:基础语法

Python编程中理解对象的概念很重要,因为其宗旨是'一切皆对象'.(提前预告) 高级语言Python,Perl和Java等语言有许多相似之处.但是,也存在一些差异. 交互式编程: 脚本式编程 Python IDE 编写.py Python 标识符 区分大小写 以_开头的标识符有特殊意义 以单_开头(_foo)的代表不能直接访问的类属性,需要提供类提供的接口进行访问,不能用from xxx import **而导入. 以双下划线开头(__foo)代表私有成员 以双下划线开头和结尾的(__foo_

Python学习笔记三(文件操作、函数)

一.文件处理 1.文件打开模式 打开文本的模式,默认添加t,需根据写入或读取编码情况添加encoding参数. r   只读模式,默认模式,文件必须存在,不能存在则报异常. w  只写模式,若文件不存在则创建,若文件已存在则清空内容,不可以读文件. a   追加模式,文件不存在则创建,若文件已存在则在文件末尾追加,不可以读文件.    打开非文本的模式,使用"b"表示读取和写入需使用字节,不可指定编码.主要有rb.wb.ab三种模式. 2.操作文件方法 读取文件 with open('

Python学习笔记三:数据类型

数据类型 整数int 32位机器,-2**31~2**31-1,即-2147483648~2147483647(4亿多) 64位机器,-2**63~2**63-1,非常大了. 长整型long 没有位数,取决于机器内存.整数发生溢出会自动转换为长整型,一直为int,没有long的概念.Python 2.2以上使用type(数字)来验证. 浮点型(float) 不是小数,表示形式是小数,但小数不止是浮点数, 复数 x+yj 布尔值 真或假,1或0,True或False 字符串 "hello worl