Python集合的学习

浏览次数:  发布时间:2017-08-31 17:40
推荐阅读:

jquery两个参数的详解
关于jQuery()方法的第二个参数,有下面这几种用法:1 jQuery(selector, [context])、这种用法,相当于 (context) find(selector)或者

品牌广告创意必将穷途末
为什么说在广告和品牌上创意必将穷途末路?因为,品牌价值的确立产生于沟通,而创意往往导致沟通不畅。所谓沟通不畅,就是创意往往导致品牌内涵与人的记忆、知觉、思维等心理因素不符、不一致、不协调,缺少规则性。因此导致沟通不畅、沟通受阻。 因为任何事

这里写图片描述


这里写图片描述

集合 集合的引入:

社团:
linux兴趣小组 linuxL = [“zhang”,”wang”]
python兴趣小组 pythonL = [“zhang”,”li”]
。。。。

统计所有的社团 l = []

student = “zhang” 列表: linuxL + PythonL = [“zhang”,”wang”,”zhang”,”li”] 集合: {“zhang”,”wang”,”li”} 集合的定义

** 不可变的数据类型一定可哈希;hash()内置函数可以判断某个类型是否可哈希;

集合的关系测试 s1 = {1, 2, 3} s2 = {2, 3, 4} s3 = {1, 2} s4 = {5} print "s1,s2,s3的交集:", s1.intersection(s2, s3) print "s1,s2,s3的交集:", s1 & s2 & s3 print "s1,s2,s3的并集:", s1.union(s2, s3) print "s1,s2,s3的并集:", s1 | s2 | s3 print "s1-s2的差集:", s1.difference(s2) print "s1-s2的差集:", s1 - s2 print "s1-s2-s3的差集:", s1.difference(s2, s3) print "s1-s2-s3的差集:", s1 - s2 - s3 print "s2-s1的差集:", s2.difference(s1) print "s1和s2的对等差分:", s1.symmetric_difference(s2) print "s1和s2的对等差分:", s1 ^ s2 print "s2和s1的对等差分:", s2.symmetric_difference(s1) # s.isdisjoint(s2) 如果有交集,返回False;否则,返回True; print "s1和s4是否没有交集:", s1.isdisjoint(s4) print "s3是否为s1的子集:", s3.issubset(s1) print "s1是否为s3的父集:", s1.issuperset(s3) 集合的增删改查: 增加: s.add(1), s.update(s1) 删除:
s.remove(1), # 删除存在的元素,如果不存在,直接报错;
s.discard(1) # 删除存在的元素,如果不存在,do nothing;
s.pop(), # 随即删除集合元素,不加任何参数; 复制: s1 = s.copy() #s和s1的id不同 清空: s.clear() 冻集(frozenset) 冻住的集合,不能增删改; frozenset(set) set(frozenset) 高级特性 切片 迭代 任何可以迭代的对象都可以用for循环遍历; 字典的迭代:默认是通过key进行迭代的;
for i in d:
print i 字典的枚举:枚举只能返回返回两个值,一个是索引下标,一个是迭代的元素;
d = {1:”a”,2:”b”}
for i,j in enumerate(d):
print i,j,d[j] 怎么去判断是否可迭代
from collections import Iterable
isinstance(“hello”,Iterable) 列表生成式

列表生成式,其实就是生成列表的一种方式,是python内置的;

简单的列表生成式
[ i*i for i in range(10) ] # 返回1-10平方的一个列表;
[ fun(i) for i in l] # 对列表的每个元素执行某个函数操作;

for…if的嵌套
[ i*i for i in range(1,10) if i%2==0] # 返回1-10之间所有的偶数
[ i for i in range(1,10) if isprime(i)] # 返回1-10之间所有的质数,判断质数的函数是自定义的;

for…for…的嵌套
[ i+j for i in “abc” for j in “123”] # 返回”abc”和”123”的所有组合;

生成器 列表生成式可以直接创建一个列表,但列表容量受内存的限制; 在Python中一边循环一边计算的机制,称为生成器(Generator);就是你需要多少,它就生成多少; 创建生成器的方法: 将列表生成式的[]改为(); 在定义的函数中加入yield关键字; 查看生成器元素的方式: 使用生成器的next方法;(不常用) 生成器是可迭代的对象,直接通过for循环查看;

1, 1 , 1+1
max = 6
def fib(max):
n,a,b = 0,1,1
while n < 6:
print a
a,b = b, a + b
n = n + 1

高阶函数 内置的高阶函数

map

reduce

reduce(f,[1,2,3,4]) === > add(add(add(1,2),3),4)
reduce(cheng,range(1,11))

求10的阶乘:
reduce(lambda x,y: x*y, range(1,n))

filter

In [1]: def is_oushu(n):
….: if n%2 == 0:
….: return True
….: else:
….: return False
….:

In [2]: filter(is_oushu,range(1,11))
Out[2]: [2, 4, 6, 8, 10]

sorted() n [3]: l = ["a","Ab","cd","C"] In [4]: sorted(l) Out[4]: ['Ab', 'C', 'a', 'cd'] In [5]: def cmp_ignore_case(s1,s2): ....: s1 = s1.lower() ....: s2 = s2.lower() ....: if s1 < s2: ....: return -1 ....: elif s1 > s2: ....: return 1 ....: else: ....: return 0 ....: In [6]: sorted(l,cmp_ignore_case) Out[6]: ['a', 'Ab', 'C', 'cd'] 练习1

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2;

输入描述:
输入为一行,n(1 ≤ n ≤ 1000)

输出描述:
输出一个整数,即题目所求

示例1:

- 输入: 10 - 输出: 2

相关报道:

在互联网中运营网站,作为一名站长最重要的就是要把握准网站前进的方向,为什么现在很多个人站长所建立的网站不能够成功,有很大一部分原因都是因为细节把握不到位、复制内容过多、抄袭建站思路,而正是因为这些庸俗的思想,不注重细节的运营方法断送了网站更多

2+24 # This is a comment... 2+24 2+2 # and a comment on the same line as code4 (50-5*6)/45.0 8/5 # Fractions arent lost when dividing integers1.6 To do integer division and get an integer result, discarding any fractional result, there is更多

站群系统、站群软件项目组 CaiJiXia.Net & Powered by DedeCMS
Copyright © 2010-2016 广东领讯网络科技有限公司 版权所有
售前咨询