专栏首页python3python,集合

python,集合

************************集合***********************

总结 可变数据类型: 列表, 字典, 集合 不可变数据类型: 数值类型, 字符串, 元组 - 可变数据类型实现某个功能, 直接改变可变的数据类型; - 不可变数据类型实现某个功能,需要将结果赋值给另外一个变量; 是否实现for循环 可迭代数据类型: str, list, tuple, dict, set 不可迭代数据类型:数值类型 是否支持索引,切片, 重复和连接特性 有序的数据类型: str, list, tuple 无序的数据类型: dict, set

集合set的定义 集合是一个无序的,不重复的数据组合。

若花括号里面是空,是字典型 In [2]: type(set) Out[2]: dict In [1]: set = {} *)集合的定义 1.

In [16]: set = {1,2,3,1,2,3} In [17]: set = {1,2,3,'hello',(1,2,3)} In [18]: type(set) Out[18]: set

2.工厂法 工厂法定义集合时,括号里是可迭代对象,eg:数值类型不可以;

In [7]: lh = set()  定义空列表

*)set的应用场景 集合是一个无序的,不重复的数据组合。

• 列表去重 去重法一: -转换为集合数据类型;set(列表) >>> list = [1,2,2,3,4,3,4,5] >>> s = set(list) >>> print s set([1, 2, 3, 4, 5])

去重法二: -字典法; In [3]: list = [1,2,3,4,3,2,1,2] In [4]: dict = {}.fromkeys(list) In [5]: print dict {1: None, 2: None, 3: None, 4: None}

*)集合的特性 -集合是无序的,不重复的数据类型 -因此不支持索引,不支持切片,不支持重复,不支持连接; -支持成员操作符; -支持for循环;

*)集合的增删改查

***集合的增加

In [12]: set.add(5)  #add增加

In [24]: set.update([5,6]) #update增加

***集合的删除

s.remove() 删除集合中指定的元素,如果不存在,则报错

• s.pop() 随机删除集合中的某个元素,并返回删除的元素

set.discard() 删除集合指定元素,如果不存在,do nothing;

set.clear() 清空集合元素

*)集合的其他操作 显示集合set的长度 In [14]: s Out[14]: {2, 3, 'cd', 'ef'} In [15]: len(s) Out[15]: 4

• s.copy() In [6]: set = {1,2,3,'a','b'} 集合的浅拷贝 In [7]: set.copy() Out[7]: {1, 2, 3, 'a', 'b'}

• 关系测试:如交集、差集、并集的关系测试

s1 & s2  #并集

s1.intersection(s2) #并集

s1 | s2   #交集

s1.union(s2)  #交集

s1 - s2  #1与2的差集

s2 - s1   #2与1的差集

s1 ^ s2  #对等差分

In [27]: s1.issuperset(s2) #1是2的父集

In [28]: s2.issubset(s1)  #2是1的子集

In [29]: s1.isdisjoint(s2)

应用: (华为机试题)题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性, 他先用计算机生成了N个1到1000 之间的随机整数(N≤1000), N是用户输入的,对于 其中重复的数字,只保留一个,把其余相同的数去 掉,不同的数对应 着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺 序去找同学做调 查。请你协助明明完成“去重”与“排序”的工作; 提示: 生成随机数, import random random.randint(1,1000) 列表的去重

  1. 题目描述 现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 现在需要你用程序来判断IP是否合法。 输入描述:输入一个ip地址 输出描述:返回判断的结果YES or NO 示例1 输入: 10.138.15.1 输出: YES #!/usr/bin/env python #coding:utf-8 ip = raw_input('输入一个ip:') ip1 = ip.split('.') if len(ip1)!=4:     print "NO" else:     for i in ip1:       if not 0<=int(i)<=255:           print "NO"           break     else:       print "YES"

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IPython 常用的6个魔术命令

    IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。魔术命令包括两种方法:行魔术命令(line magics):以 % 为前...

    double
  • Pandas内存优化和数据加速读取

    一个现象是,在使用pandas进行数据处理的时候,加载大的数据或占用很大的内存和时间,甚至有时候发现文件在本地明明不大,但是用pandas以DataFram...

    double
  • 12种主流编程语言输出“ Hello World ”,把我给难住了!

    作为一名程序员,在初步学习编程想必都绕不开一个最为基础的入门级示例“Hello World”,那么,你真的了解各个语言“Hello World”的正确写法吗?

    AI科技大本营
  • 使用自己的数据集训练MobileNet、ResNet实现图像分类(TensorFlow)| CSDN博文精选

    之前写了一篇博客《使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)》https://panjinq...

    AI科技大本营
  • 爬虫 (十一) 学习 python 基础知识点的正确姿势 (四)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 谁说Python不适合做GUI程序?wxFormBuilder上手教程

    来源:https://blog.csdn.net/caiza3491/article/details/79529966

    小草AI
  • 爬虫 (八) 学习 python 基础知识点的正确姿势 (一)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 爬虫 (十) 学习 python 基础知识点的正确姿势 (三)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 使用一行Python代码从图像读取文本

    处理图像不是一项简单的任务。对你来说,作为一个人,很容易看着某样东西然后马上知道你在看什么。但电脑不是这样工作的。

    磐创AI
  • Python爬虫进阶必备 | 某裁判文书检索网站加密分析与自动登录实现

    首先是 _csrf ,这个参数比较简单,一般是用来防止跨域攻击的,感兴趣的朋友可以借助搜索引擎了解一下,不是重点我们就不详聊了。

    咸鱼学Python

扫码关注云+社区

领取腾讯云代金券