Python之集合、函数

一 集合
1 集合定义:
A 如果花括号为空,则是字典类型

B 定义一个空集合,使用set 加小括号

使用B方式定义集合时,集合内部的数必须是可迭代对象,数值类型的不可以

集合的简单应用(实现对集合内元素的去重操作,此操作可应用于对列表的去重)
1 使用集合对列表进行去重操作

2 使用字典的键不重复性对列表进行去重

集合的增删改查

1 集合的增:
A add 实现对非可变类型数据的添加操作(除列表,字典)


B update 实现对可迭代对象的加入操作(数值类型则不能加入其中)

2 删
A pop()支持对集合的无序删除操作

B remove 支持对集合的指定元素的删除工作,若不存在,则报错

C discard 删除集合中指定元素,如果不存在,则无反应

D clear 清空集合

例题应用:
要求输入一个数,使其成为1-1000之间产生随机数的个数的总和个数,并对这些数进行排序(有小到大)
1
[[email protected] ~]# cat a.py
#!/usr/bin/env python
#coding=utf-8
import random #导入该模块,用于生成1到1000的随机数
l1=[]
s=set()
N=input("请输入数字总和N:")
for i in range(N): #进行循环的总数
N1=random.randint(1,1000) # 生成1-1000内的随机数N个
s.add(N1)
l1=list(s)
l1.sort() #使用列表的内置方法进行排序
print l1

2
[[email protected] ~]# cat a.py
#!/usr/bin/env python
#coding=utf-8
import random
l1=[]
s=set()
N=input("请输入数字总和N:")
for i in range(N):
N1=random.randint(1,1000)
s.add(N1)
l1=list(s)
print sorted(l1) 使用内置函数进行排序

3 查(关系测试)

1 交集 (输出两个集合中共有的元素)

2 并集(输出列个集合中所有存在的元素)

3 差集(输出第一个集合中与第二个集合不同的元素)

4 对等差分 (输出两个集合中各不存在但对方存在的元素)

集合关系判断(子集,父集)

二 总结:
可变数据类型:列表,字典,集合
不可变数据类型:数值类型,元祖,字符串

可变数据类型实现某个功能,直接改变可变的数据
不可变数据类型实现某些功能,需要将结果赋值给另一个变量

可迭代数据类型(能实现for 循环):str list tuple dict set
不可迭代数据类型:数值类型

是否支持索引,切片,链接,重复特性
有序的数据类型:str list tuple
无序的数据类型:dict set

三 函数
1 无参数的函数
函数的定义:
def 函数名():
函数体

函数的调用:
函数名()

定义函数时,函数不执行,调用函数时,函数才执行

2 有参数的函数
A 形参
在def 函数定义时使用的参数称为形式参数,不具备实际的意义,
def a1(x,y):
....: print x+y

 此时的x,y被称为形式参数

 B  实参
 在调用函数时传入函数体内部的参数称为实参,有实际的效果的参数

 In [35]: a1(1,2)

3

In [36]: a=1;b=3

In [37]: a1(a,b)
4

此时的1,2 和 a,b 都是实参

形参的分类

A 必须参数
def a1(x,y):
....: print x+y

B 默认参数

In [59]: def a4(x,y=1): #y=1 用于当只传入一个参数时,此y=1则会发生作用,若传入两个参数,则失效
....: print x,y
....:

In [60]: a4(1)
1 1

In [61]: a4(1,2)
1 2

C 可变参数

In [38]: def a2(*x): 可以同时传输多个参数,其产生的结果是一个元祖
....: print x
....:

In [39]: a2(1,2,3,4,5,6)
(1, 2, 3, 4, 5, 6)

a2([1,2,3,4,5])
([1, 2, 3, 4, 5],)

应用,用于数之和
In [41]: def a2(*x):
....: sum=0
....: for i in x:
....: sum+=i
....: print sum
....:

In [42]: a2(1,2,3,4,5,6,7,8,9)
45

D 关键字参数:

In [57]: def a3(**x):
....: print x #其返回值是一个字典
....:

In [58]: a3(a=1,b=2,c=3)
{‘a‘: 1, ‘c‘: 3, ‘b‘: 2}

函数定义时,若有多种类型的参数需要定义,则必须要遵循:必须参数--默认参数--可变参数--关键字参数

返回值
函数中没有return时,默认返回None

返回多个值

#!/usr/bin/env python
#coding=utf-8
def a1(*args):
‘‘‘
返回最大值和最小值
:param args: 要求输入多个数作比较
:return: 返回最大值和最小值
‘‘‘
return max(args) ,min(args)
print a1(1,2,3,4,10,20,100)

函数的变量作用域
global 关键字必须要先声明,再使用

#!/usr/bin/env python
#coding=utf-8

x=1
def a1(x):
x=2
print x

print x 其结果是x=1
a1(x) 其结果是x=2 ,因为在调用函数内部时,此x=2是局部变量,其优先级高于X=1

#!/usr/bin/env python
#coding=utf-8

x=1
def a1():
global x #声明变量为全局变量,并赋值
x=2
print x

a1() 结果为2
print x 结果为2
名称空间:一个变量所能够生效的作用域
本地作用域:只能在函数内部使用
模块定义:全局作用域
函数定义:本地作用域
变量名解析:LEGB 原则:
变量名引用分三个作用域进行: 首先是本地。之后是函数内,接着是全局,最后是内置
Python 创建、改变或查找变量名都是在名称空间中进行
在代码中变量名被赋值的位置决定了其能被访问到的返回
函数定义了本地作用域,而模块定义了全局作用域
每个模块都是一个全局作用域,因此,全局作用域的范围仅限于单个程序文件
每次对函数的调用都会创建一个人新的本地作用域,赋值的变量除非声明为全局变量,否则均为本地变量
所有的变量都可以归纳为本地、全局或内置的(由_builtin_模块所提供的)

原文地址:http://blog.51cto.com/11233559/2059485

时间: 2024-10-28 23:42:25

Python之集合、函数的相关文章

Python Day3 集合 函数 文件操作

set集合 set是一个无序且不重复的元素集合 class set(object):    """     set() -> new empty set object     set(iterable) -> new set object          Build an unordered collection of unique elements.    """     def add(self, *args, **kwargs

python的集合、递归、函数和模块

一.python的集合 集合具有天生去重和无序的特性,也由于无序,所以集合无法通过下标取值 新建一个集合的方法是: s = set()   #空集合 s2 = {'1','2','3'} 添加元素的方法为: s.add('1') 删除元素的方法为: s.remove('1') s.pop()    #随机删除一个值 s1 = {1,2,3} s2 = {3,4,5} 交集: s2.intersection(s2) s2 & s1 并集: s2.union(s1) s2 | s1 差集(取s2里不

Python:enumerate函数、introspection对象自省、推导式(列表(list)推导式、字典(dict)推导式、集合(set)推导式)

枚举(enumerate)是Python内置函数.它允许我们遍历数据并?动计数,例如下面这样:for counter, value in enumerate(some_list): print(counter, value)不只如此,enumerate也接受?些可选参数,这使它更有?.例如:for counter, value in enumerate(some_list,1): # 指定从1开始计数 print(counter, value)还可以?来创建包含索引的元组列表. 1 # 指定索引

python基础教程函数参数

python里有很多的内置函数给我们的工作带来了很多发便利,在我们实现某些功能或者优化代码的时候,可以自己定义一个函数,同时我们在定义一个类的时候也会用到函数的一些知识去构造一个方法,这里就涉及到一些关于函数的基础知识和函数传参的知识. 一.函数的相关介绍 1.函数定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 函数特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 2.函数的定义示例 定义一个函数要使用def语句,依次写出函数名.括

Python内置函数_数学运算类

本文和大家分享的主要是python内置函数数据运算类相关内容,一起来看看吧,希望对大家学习python 有所帮助. abs abs(x) 求绝对值 · X可以是整型,也可以是复数 · 若X是复数,则返回复数的模 >>> abs(-1)1>>> abs(-3+4j)5.0>>> bin bin(x) 将整数x转换为二进制字符串 >>> bin(2)'0b10'>>> bin(3)'0b11' bool bool([x]

Python:集合操作总结

集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(set)是允许添加和删除元素的:而对于不可变集合(frozenset)则不允许对集合进行添加和删除操作. 二.集合的创建 与列表([]).元组(())和字典({})不同,集合的创建没有特别的语法格式,因此如果想要创建集合就必须调用创建集合所需的工厂函数:set()和frozenset()  [注]:这

Python补充--Python内置函数清单

Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义.最常见的内置函数是: print("Hello World!") 在Python教程中,我们已经提到下面一些内置函数:基本数据类型 type()反过头来看看 dir()   help()    len()词典 len()文本文件的输入输出 open()循环设计 range()   enumerate()    zip()循环对象

python基础9 -----python内置函数

python内置函数1 一.python内所有的内置函数: 二.python内常用的内置函数: 三.python内内置函数详解: 1.数学运算函数: 2.集合类函数: 3.逻辑类函数: 4.映射类函数: 5.IO操作:

python之set函数

str list  ---列表 tuple dic   ----字典 set 函数 - 自定义函数 - 内置函数 > python提供的功能,直接调用 深浅拷贝 装饰器 列表的特性:有序,元素可重复,字典key不可重复: 1.set --无序,不重复的序列: 例: list = [11,22,11,22]  --列表类型 dic = {"k1": 123}    --字典类型 a.创建set集合(函数) se = {"123","456"}

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (1)kNN算法_手写识别实例--基于Python和NumPy函数库 1.kNN算法简介 kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算