【4】python_基础_集合、json模块、函数

1 集合(天生去重)

1.1 定义集合

集合是无序的

 1 # 定义集合:天生去重
 2 nums = [1,1,2,3,4,4]
 3 num_set = set (nums)    # 1、使用set将其他类型转成集合(去重)
 4 print(‘1======‘,num_set)      #   {1, 2, 3, 4}
 5
 6 nums2 = {1,1,2,3,4,4}   # 2、直接定义集合
 7 print (‘2======‘,nums2)    #   {1, 2, 3, 4}
 8
 9 nums3 = set()   # 3、定义空集合,不能写成num3={}-定义空字典
10 print (‘3======‘,nums3)

1 1 1====== {1, 2, 3, 4}
2 2 2====== {1, 2, 3, 4}
3 3 3====== set()

1.2 集合取值

1 1 # 集合取值
2 2 for n in nums2:
3 3     print(‘4======‘,n)

1 1 4====== 1
2 2 4====== 2
3 3 4====== 3
4 4 4====== 4

1.3 集合关系

  • 交集  

    • set1.intersection(set2)       取set1及set2中都有的
    • set1 & set2
  • 并集  
    • set1.union(set2)  取set1合并set2
    • set1 | set2  
  • 差集
    • set1.difference(set2)  取set1中有的,set2中没有的
    • set1 - set2
  • 对称差集
    • set1.symmetric_difference(set2)  取 (set1 - set2) | (set2-set1)
    • set1 ^ set2
  • 父集、子集
    • set2.issubset(sest1)  set2是set1的子集?如果是,返回True;如果不是,返回False
    • set1.issuperset(set2)  set1是set2的父集?如果是,返回True;如果不是,返回False

       1 1 # http://www.nnzhp.cn/archives/160
       2  2 # 集合作用
       3  3     # 集合是无序的,不能通过下标取值
       4  4     #  1、去重
       5  5     # 2、关系测试-交集,差集,并集,反向差集/对称差集 (eg.list1、list2 数据处理)
       6  6 list =[1,2,3,4,5,3,6]
       7  7 nums={2,3,4,3}  #集合是无序的,不能通过下标取值,可以循环
       8  8 list_2 =[2,3,5,7,8]
       9  9 list_3 =[1,3,6]
      10 10
      11 11 #定义集合
      12 12 list = set(list)
      13 13 list_2 = set (list_2)
      14 14 list_3 = set (list_3)
      15 15
      16 16 print(‘1=====‘,list.intersection(list_2))    # 交集 (取list中且list2中有的)   {2, 3, 5}
      17 17 print(‘2=====‘,list & list_2)    # 交集 (取list中且list2中有的)   {2, 3, 5}
      18 18
      19 19 print(‘3=====‘,list.union(list_2))   # 并集(去重统一展示)    {1, 2, 3, 4, 5, 6, 7, 8}
      20 20 print(‘4=====‘,list | list_2) # 并集(去重统一展示)    {1, 2, 3, 4, 5, 6, 7, 8}
      21 21
      22 22 print(‘5=====‘,list.difference(list_2))  # 差集 (取list中有的,list2中没有的。即属于list且不属于list2的元素集合)    {1, 4, 6}
      23 23 print(‘6=====‘,list_2.difference(list))  # 差集 (取list_2中有的,list中没有的)   {8, 7}
      24 24 print(‘7=====‘,list -list_2)  # 差集 (取list中有的,list2中没有的)    {1, 4, 6}
      25 25
      26 26 import string
      27 27 all_nums = set(string.digits)
      28 28 print(‘8=====‘,all_numbs)
      29 29 num4 = {‘1‘,‘2‘,‘3‘}
      30 30 print(‘9=====‘,all_nums.issuperset(num4))
      31 31
      32 32 print(‘10=====‘,list_3.issubset(list))    #返回布尔值,如果list_3是list的子集(list_3的值,在list中都有),返回True
      33 33 print(‘11=====‘,list.issuperset(list_3))  #返回布尔值,如果list是list_3的父集(list_3的值,在list中都有),返回True
      34 34
      35 35 print(‘12=====‘,list.symmetric_difference(list_2))    #对称差集   (取"list中有的,list2中没有的" 并上 "list_2中有的,list中没有的"  。即集合list与集合list2中所有不属于list∩list2的元素的集合。即把2集合中都有的去掉){1, 4, 6, 7, 8}
      36 36 print(‘13=====‘,list ^ list_2)    #对称差集   (取"list中有的,list2中没有的" 并上 "list_2中有的,list中没有的"  去重){1, 4, 6, 7, 8}

       1 1 1===== {2, 3, 5}
       2  2 2===== {2, 3, 5}
       3  3 3===== {1, 2, 3, 4, 5, 6, 7, 8}
       4  4 4===== {1, 2, 3, 4, 5, 6, 7, 8}
       5  5 5===== {1, 4, 6}
       6  6 6===== {8, 7}
       7  7 7===== {1, 4, 6}
       8  8 8===== {‘1‘, ‘7‘, ‘4‘, ‘0‘, ‘2‘, ‘6‘, ‘8‘, ‘9‘, ‘3‘, ‘5‘}
       9  9 9===== True
      10 10 10===== True
      11 11 11===== True
      12 12 12===== {1, 4, 6, 7, 8}
      13 13 13===== {1, 4, 6, 7, 8}

      View Result

密码较验练习

 1 1 #!/usr/bin/python
 2  2 # -*- coding:utf-8 -*-
 3  3 # Author:hwm
 4  4
 5  5 #密码较验:必须包含大小写字母、数字、特殊字符
 6  6 import string
 7  7 letters = set (string.ascii_letters)
 8  8 digits = set (string.digits)
 9  9 pun = set (string.punctuation)
10 10
11 11 # all = letters| digits| pun
12 12 #if pwd.issubset(all):
13 13 for i in range(5):
14 14     pwd = input(‘passwd:‘).strip()
15 15     pwd = set(pwd)
16 16     if pwd & letters and pwd & digits and pwd & pun:
17 17         print(‘密码合法‘)
18 18     else:
19 19         print(‘密码不合法,密码必须包含大小写字母、数字、特殊字符‘)

1 1 passwd:1
2 2 密码不合法,密码必须包含大小写字母、数字、特殊字符
3 3 passwd:abc1a
4 4 密码不合法,密码必须包含大小写字母、数字、特殊字符
5 5 passwd:abc1e)
6 6 密码合法
7 7 passwd:

View Result

1.4 集合操作方法

  • 添加  

    • add(ele)  一次添加一个
    • update(list)  一次添加多个
  • 删除
    • pop()  随机删除一个元素。
    • discard(ele)  删除元素。如果元素不存在,不报错,返回None。推荐使用。
    • remove(ele)    删除元素。如果元素不存在,报错。不推荐使用

 1  1 print(‘-------------集合操作-------------‘)
 2  2 print(‘-------------添加-------------‘)
 3  3 list.add(777)   # 一次添加一个
 4  4 print(‘14=====‘,list)
 5  5 list.update([888,999]) # 同时添加多个
 6  6 print(‘15=====‘,list)
 7  7 print(‘-------------删除-------------‘)
 8  8 list.remove(999)    # 删除一个不存在的元素,报错
 9  9 print(‘16=====‘,list)
10 10 list.pop()  # 随机删除集合中的一个元素
11 11 print(‘17=====‘,list)
12 12 list.discard(888)
13 13 print(‘18=====‘,list)        # 删除一个不存在的元素,不报错

1 1 -------------集合操作-------------
2 2 -------------添加-------------
3 3 14===== {1, 2, 3, 4, 5, 6, 777}
4 4 15===== {1, 2, 3, 4, 5, 6, 999, 777, 888}
5 5 -------------删除-------------
6 6 16===== {1, 2, 3, 4, 5, 6, 777, 888}
7 7 17===== {2, 3, 4, 5, 6, 777, 888}
8 8 18===== {2, 3, 4, 5, 6, 777}

View Result

原文地址:https://www.cnblogs.com/xhybk/p/9258949.html

时间: 2024-10-29 19:25:02

【4】python_基础_集合、json模块、函数的相关文章

【5】python_基础_字符集、列表推导式、模块

Python基础 1 字符集 字符集编码发展历程简介:2进制(0/1)→ASCII表(数字/英文/符号)→gb2312(简体中文) →gbk(汉字) →Unicode(万国码,存储空间加倍) →UTF-8 跨国官方语言兼容:本国语言字符集→转换成Unicode→转换成外国语言字符集 python2的默认字符是ascii,python3的默认字符是utf-8 python2不支持中文,报错:no-ascii,解决方案:在py文件头部加上# -*- coding:utf-8 -*- 2 列表推导式(

Python_基础_(llogging,)

一,logging模块 import logging logging.debug("")logging.info("")logginf.warning("")logging.error("")logging.critical("") # 默认的级别为warning # level总共分5个级别:debug < info< warning< error< critical   ## 设

python基础_集合、文件操作

集合 集合是一个无序的且数据不会重复.有去重.关系测试的作用 list = ["11","22","33","44","55"] list = set(list) print(list,type(list)) 结果为: {'33', '11', '22', '55', '44'} <class 'set'> 关系测试list1 = set(["11","22&quo

java基础_集合

集合1.List:继承Collection接口,实现类有ArrayList LinkedList Vector ;有序,值可重复,可以存储空值: ①List遍历方法: 1 public static void main(String[] args) { 2 List<String> list = new ArrayList<String>(); 3 //插入数据 4 list.add(null);list.add("a");list.add("b&qu

Java基础_集合概述以及Colletion集合

集合 1.集合的概述 (1).集合的来由 我们学习的是面向对象的语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们必须把这个对象进行 存储,而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的只是里面,有哪一些是容器类 型的呢? 数组和StrngBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能够选择数组,也就是对象数组. 而对象数组又并不能够适应变化的需求,因为数组的长度是固

Java基础_集合泛型

泛型 1.泛型概述 我们在集合中存储数据的时候,存储了String和Integer俩种类型的数据.而在遍历的时候,我们把它当做是String类型处理,做了转化,所以 会报错.但是呢?它在编译期间却没有告诉我们.所以我们觉得这一个设计的不好.所以集合也模仿着数组中在定义之前指明数据的类型,在 创建对象的时候明确元素的数据类型.这样就不会存在问题了.这一种技术被称为泛型. 2.泛型 是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊类型.参数化类型,把类型当作参数传递. 3.泛型定

Python_基础_(面向对象进阶)

一,isinstance(obj,cls) issubclass(sub,super) isinstance(obj,cls) # 判断对象obj是否是cls的一个实例 class Test: pass t = Test() print(isinstance(t,Test)) # True issubclass(sub,super) # 判断类sub是否为类super的子类 class Test: pass class Sub(Test): pass print(issubclass(Sub,T

Python自动化四--json模块使用,集合操作,函数

内容: json模块 集合操作 函数 一,json模块 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dump(): 对数据进行编码. json.load(): 对数据进行解码. json格式存储--小例子 import json stu_info = { 'laowang':{ 'cars':['BMW

python基础学习3-文件读写、集合、json、函数

  1       文件读写补充 文件修改 方法1:简单粗暴直接: 1.  先获取到文件里面的所有内容 2.  然后修改文件里面的内容 3.  清空原来文件里面的内容 4.  重新写入 f = open('test1.txt','r+') f.seek(0) all_data = f.read() new_data = all_data.replace('123','python') f.seek(0)           #将指针移到最前面 f.truncate()        #清空原来文