一、集合

它的元素是唯一的,并无序的。

1、集合定义

s = set()

s = {1, 2, 3}

2、集合的方法

update版本的集合运算是在原集合上进行修改,返回值为None。

  • add()表示增加一个元素到集合。当添加一个已经存在的元素时,不会抛出异常。可hash的可以作为集合的元素,不可hash(list,set,bytearray dict)的不可以作为集合的元素。
  • update()表示增加一个可迭代对象。
  • remove()表示从集合中删除一个存在的元素,否则抛出一个KeyError异常。
  • discard()表示从集合中删除一个元素,当元素不存在时不抛出异常。
  • pop()表示从集合中随机返回一个元素,并从集合中删除此元素。当删除一个空集合时,抛出一个KeyError异常。
  • clear()表示清空所有元素。
  • difference()表示不在另一个集合的所有元素,返回一个新集合。
  • intersection()表示两个集合的交集,返回一个新集合。
  • union()表示两个集合的并集,返回一个新集合。
  • symmetric_difference()表示返回两个集合不相交的元素,返回一个新集合。
  • difference_update()表示在原集合修改,只保留第一个集合不相交的元素。
  • intersection_update()表示在原集合修改,保留两个集合的相同元素。
  • issuperset()表示是否为超集。
  • issubset()表示是否为子集。
  • isdisjoint()表示两个集体不相交。

二、字典

字典是一个键值对结构。它的Key必须是可hash的值并且是唯一的,value可以是任意的值。

1.字典定义

dt = dict()

dt = {}

2.下标操作

dt = {'a':2,'b':3}

dt['c']=4

3.字典的方法

  • update()表示增加元素,如果增加的key相同是就修改原来key的值。它的参数可以是以下几种情况:字典、由二元组构成的可迭代对象、关键字参数。
dt = {'a':2,'b':3}
dt['c'] = 4 dt.update([('g',3),('h',2)])
dt.update({'f':3,'e':2})
dt.update(u=22)
print(dt)
#结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
  • pop()表示从字典中删除指定的key,如果key不存在就抛出keyError异常,但可以指定默认值时则不抛出异常。
dt = {'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
d = dt.pop('gg',-2)
print(d)
print(dt)
#d结果:-2
#dt结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
  • popitem()表示从字典中随机删除一个key,并返回一个键值对的元组。如果删除一个空字典时抛出一个KeyError异常。
dt = {'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
d = dt.popitem()
print(d)
print(dt)
#d结果:('u', 22)
#dt结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2}
  • clear()表示清空字典所有键值对。
  • get()表示访问指定键的值,并可以给默认值。
  • setdefault()表示可以为某个key指定默认值。

三、字典的应用

  • 字典可能通过keys()方法返回所有keys,也可以通过values()方法返回所有的值。
  • 用len()方法统计字典的长度。

1、如何遍历一个字典?

dt = {'a':1,'b':2,'c':3}

for k in dt.keys():
print('{}=>{}'.format(k,dt[k]),end=' ') #结果:a=>1 b=>2 c=>3
dt = {'a':1,'b':2,'c':3}

for k,v in dt.items():
print('{}=>{}'.format(k,v),end=' ')
#结果:a=>1 b=>2 c=>3

2、enumerate用法

enumerate()是python的内置函数,并返回的是一个enumerate对象。对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

lt = [1, 2, 3, 4, 5, 6]

for k,v in enumerate(lt):
print('{}=>{}'.format(k,v),end=' ') #结果:0=>1 1=>2 2=>3 3=>4 4=>5 5=>6

enumerate还可以接收第二个参数,用于指定索引起始值。

lt = [1, 2, 3, 4, 5, 6]

for k,v in enumerate(lt,1):
print('{}=>{}'.format(k,v),end=' ') #结果:1=>1 2=>2 3=>3 4=>4 5=>5 6=>6

3、OrderedDict的用法

collections模块里有一个OrderedDict,它可以记住字典中插入元素的先后顺序。

from collections import OrderedDict

ot = OrderedDict()
ot['b']=2
ot['a']=1
ot['e']=4
ot['1']=1
ot['c']=3
ot['2']=2 for k,v in ot.items():
print('{}=>{}'.format(k,v),end=' ')
lt = {'a', 'b', 'c', 'd'}

print(dict.fromkeys(lt,True))

#结果:{'a': True, 'b': True, 'd': True, 'c': True}

python(set、dict)的更多相关文章

  1. Python(变量、数据类型)

    常量:python中没有常量,只能通过名字特征来提示例如:全部大写,如 : OLDBOY_AGE=57 一.变量 变量声明变量#!/usr/bin/env python age=18gender1=' ...

  2. Python学习日记(四)——Python基本数据类型梳理(int、str、list、tuple、dict)

    数字(int) 1.创建方式 n1 = 123 n2 = int(123) 2.内存分配 #共同用一个内存地址的情况 n1 = 123 n2 = n1 #用两个内存地址的情况 n1 = 123 n2 ...

  3. python/零起点(一、字典)

    python/零起点(一.字典) dict( )字典 dict()强型转换成字典类型的数据类型: 字典的键(Key)必须是唯一不可变的 字典是无序,字典可变数据类型,且是可迭代的对象 字典清空操作案例 ...

  4. Python全栈工程师(for、列表)

    ParisGabriel     Python 入门基础         for:用来遍历可迭代对象的数据元素可迭代对象是指以此获取数据元素的对象可迭代对象包括:字符串 str 列表 list元组 t ...

  5. Python开发:环境搭建(python3、PyCharm)

    Python开发:环境搭建(python3.PyCharm) python3版本安装 PyCharm使用(完全图解(最新经典))

  6. python/零起点(一、字符串)

    python/零起点(一.字符串) 字符串(str) 字符串是可迭代的 str()强制转成字符串类型 字符串是有序的,且不可变的数据类型. 字符串转换整型的案例: 1 name=['guobaoyua ...

  7. python/零起点(一、列表)

    python/零起点(一.列表) 列表(list)list()可以强行转换数据类型为列表,列表是可迭代对象 列表是有序的,且列表是可变的数据类型 列表中的元素可以是(字符串.整型.元祖.列表.字典.集 ...

  8. Python/MySQL(一、基础)

    Python/MySQL(一.基础) mysql: MYSQL : 是用于管理文件的一个软件 -socket服务端 (先启动) -本地文件操作 -解析 指令[SQL语句] -客户端软件 (各种各样的客 ...

  9. Python全栈工程师(运算符、if)

    ParisGabriel       Python 入门基础   比较运算符:< 小于<= 小于等于> 大于>= 大于等于== 等于!= 不等于 语法: 表达式1>表达式 ...

随机推荐

  1. Python模板库Mako的用法

    官网地址:http://www.makotemplates.org/ 文档地址:http://docs.makotemplates.org/ 中文文档基本用法地址:http://www.open-op ...

  2. C# ABP - 创建自己的模块

    本篇文章介绍怎么创建自己的模块,并且使用依赖注入方法进行模块间的无缝结合. 我们创建一下自己的一个会员模块,针对不同的系统都可以用.你们可以看看我是怎么做的,或者从中得到启发. 目录 1.开始创建项目 ...

  3. win2d 图片水印

    本文告诉大家如何使用 win2d 给图片加上水印. 安装 首先需要使用 Nuget 安装 win2d ,安装参见win10 uwp win2d 如果没有更新 dot net core 那么在运行可能会 ...

  4. Lightning Chart 8.4版新功能

    LightningChat V8.4版在如下功能上做了改进 边距 缩放功能 Legend box 的自动定位 正投影 相机orientation与rotation系统 全新3D 坐标空间转换器 Poi ...

  5. Android-事件分发(ViewGroup)

    http://blog.csdn.net/guolin_blog/article/details/9153747 http://blog.csdn.net/lmj623565791/article/d ...

  6. WebKit的Platform接口部分

    转载请注明出处:http://www.cnblogs.com/fangkm/p/3787977.html WebKit中解析.渲染网页的过程中需要一些功能,比如: socket连接.URL资源请求的实 ...

  7. Linux 安装redis,redis发布订阅,持久化

    安装redis 1.安装redis的方式 -yum (删除这个yum安装的redis,我们只用源码编译安装的) -rpm -源码编译 2.删除原本的redis yum remove redis -y ...

  8. 【读书笔记】iOS-网络-解析响应负载

    Web Service可以通过多种格式返回结构化数据, 不过大多数时候使用的是XML与JSON.也可以让应用只接收HTML结构的数据.实现了这些Web Service或是接收HTML文档的应用必须能解 ...

  9. Linux 配置iso系统盘为本地yum源

    Linux配置iso系统盘为本地yum源 by:授客 QQ:1033553122   1.目的 安装软件时,经常会遇到包或类库的依赖性问题,为此,我们可以通过yum命令安装软件,尽量避免出现繁琐的软件 ...

  10. 在sublime text 3中让.vue文件的内容变成彩色

    直接上步骤: 1.按住ctrl + shift + p 2.输入install Package 3.输入Vue Syntax Highlight 执行完以上3步,再次打开.vue文件,会发现里面的内容 ...