字典

key:value  键:值  映射,哈希值,关系(数组)

x=['1','2']

y=['a','b']

>>print(y[x.index('1')])

a

index() 函数用于从列表中找出某个值第一个匹配项的索引位置。

x.index('1')   0  

y[0]     a

>>x={'1':'a','2':'b'}

>>print(x['1'])

a

>>dict1={1:'one',2:'two'}

>>dict1[2]      []中是key,而不是索引值

创建 {"one":1,"two":2,"three":3}

>>> a = dict(one=1, two=2, three=3)

>>> b = {'one': 1, 'two': 2, 'three': 3}

>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))

>>> d = dict([('two', 2), ('one', 1), ('three', 3)])   # ((()))

>>> e = dict({'three': 3, 'one': 1, 'two': 2})

>>> a == b == c == d == e

True

>>dict()    创建新字典

{}

>>dict(one=1, two=2, three=3)

{"one":1,"two":2,"three":3}

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表

>>>a = [1,2,3]

>>> b = [4,5,6]

>>> zipped = zip(a,b)

>>> zipped

<zip object at 0x103abc288>

>>> list(zipped)

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

>>dict1={1:'one',2:'two'}

>>> a = dict(one=1, two=2)  #后面数字
>>> a
{'one': 1, 'two': 2}
>>> a= dict(1=one, 2=two)
SyntaxError: keyword can't be an expression

>>> a= dict(o='one', t='two')  #后面字符串,要加' '
>>> a
{'o': 'one', 't': 'two'}

dict()   字符串=字符串或数字,不可以数字=

工厂函数(类型)  int() str() dict() list()

Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

dict.fromkeys(seq[, value])

seq -- 字典键值列表。

value -- 可选参数, 设置键序列(seq)的值。

seq = ('Google', 'Runoob', 'Taobao')   #元组,列表,都可换成字典。若后无参数,默认None

dict = dict.fromkeys(seq) print "新字典为 : %s" % str(dict)

dict = dict.fromkeys(seq, 10) print "新字典为 : %s" % str(dict)

新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}

新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}

>>dict.fromkeys((1,3),'hi')

{1:'hi',3:'hi'}

>>dict1=dict.fromkeys(range(3),'hi')

{0:'hi',1:'hi',2:'hi'}

>>for a in  dict1.keys():

  print(a)

0

1

2

>>for a in dict1.values():

  print(a)

hi

hi

hi

>>for a in dict1.items():

  print(a)

(0,'hi')

(1,'hi')

(2,'hi')

>>print(dict1[2])    key

hi

>>dict1.get(2)

hi

>>3 in dict1

false

>>dict1.get(3,'no')    #修改

no

clear() 函数用于删除字典内所有元素。

dict1.clear()

dict1={}    也可用于清空字典内元素

缺点

a={1,2}

b=a    a,b指向这个字典

a={}    a清空

b={1,2}    b不变

a.clear()    a,b都为空

a={1:'hi',2'hi',3'hi'}

c=a    赋值

b=a.copy    浅拷贝    

id(a) == id(c)    a变时c也变

id(a) != id (b)    a 变时b不变

a.pop(2)   key

{1:'hi',3'hi'}

a.popitem()    随机弹出一个

(1,'hi')  

Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

dict.setdefault(key, default=None)

key -- 查找的键值。

default -- 键不存在时,设置的默认键值。

a={1:'hi',2'hi',3'hi'}

print(a.setdefault(1))

hi

a.setdefault(4,'hi')

{1:'hi',2'hi',3'hi',4'hi'}

update() 函数把字典dict2的键/值对更新到dict里。

b={4,'hello'}

a.update(b)

{1:'hi',2'hi',3'hi',4'hello'}

集合  无序(非序列)无索引

>>type(num1={})

divt

>>type(num2={1,2,3})

set

>>num2={1,1,2,3,3}

>>num2

{1,2,3}

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

set1=set([1,2,2,3])

{1,2,3}

>>>x = set('runoob')

>>> y = set('google')

>>> x, y

(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l']))

{'r', 'b', 'o', 'u', 'n'},{'g', 'e', 'l', 'o'}

>>> x & y # 交集

set(['o'])

{'o'}

>>> x | y # 并集

set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])

{'g', 'l', 'r', 'e', 'b', 'o', 'u', 'n'}

>>> x - y # 差集

set(['r', 'b', 'u', 'n'])

{'b', 'u', 'r', 'n'}

去掉重复数

num1=[1,2,2,3]

remp=[]

for a in num1:

  if a not remp:

    temp.append(a)

创建一个空列表,若空列表中没有的数,放到空列表中(避免重复)(顺序不变)

num1=list(set(num1))  变集合,去掉重复,再变回列表(从小至大排序)

num1={1,2,3}

>> 1 in num1    判断集合内是否有元素

true

>>num1.add(4)  添加元素4

{1,2,3,4}

>>num1.remove(1)  删除元素1

{2,3,4}

不可变集合

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

>>>a = frozenset(range(10))    frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> a

frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

>>> b = frozenset('runoob')    frozenset(['b', 'r', 'u', 'o', 'n'])

>>> b

frozenset({'r', 'b', 'o', 'u', 'n'})    # 创建不可变集合

python 07 字典 集合的更多相关文章

  1. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  2. python元组-字典-集合及其内置方法(下)

    列表补充 补充方法 清空列表 clear # clear 清空列表 l = [1, 2, 3, 4, 4] print(l.clear()) # clear没有返回值(None) print(l) # ...

  3. python --- 05 字典 集合

    一.字典 可变数据类型 {key:value}形式   查找效率高   key值必须是不可变的数据类型 1.增删改查 1).增    dic["新key"] = "新va ...

  4. Python中字典和集合

    Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...

  5. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  6. python --->字典 集合 学习笔记

    1.字典--->创建空字典:dict={} broa=["李宁",”耐克“,“阿迪达斯”,“鱼c工作室”] sloga=[“A”,“B”,“C”,“D”] dict={&qu ...

  7. 巨蟒python全栈开发-第5天 字典&集合

    今日大纲: 1.什么是字典 字典是以key:value的形式来保存数据,用{}表示. 存储的是key:value 2.字典的增删改查(重点) (1) 添加 dic[新key] = 值 setdefau ...

  8. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  9. Python列表、集合与字典(3)

    目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识   列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系.   在Pytho ...

随机推荐

  1. vue学习(十三) 删除对象数组中的某个元素

    //html <div id="app"> //v-for循环就不写了 每一条数据最后都有一个删除的超链 .prevent阻止默认的跳转行为 只执行点击事件 <a ...

  2. Java容器学习之List

    List接口继承了Collcetion接口,Collection接口又继承了超级接口Iterable,List是有序列表,实现类有ArrayList.LinkedList.Vector.Stack等. ...

  3. 预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值

    PHP $_POST 变量 在 PHP 中,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值. $_POST 变量 预定义的 $_POST 变量用 ...

  4. Python Tuple(元组) min()方法

    描述 Python 元组 min() 函数返回元组中元素最小值.高佣联盟 www.cgewang.com 语法 min()方法语法: min(tuple) 参数 tuple -- 指定的元组. 返回值 ...

  5. Python 访问字符串中的值

    Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用.高佣联盟 www.cgewang.com Python 访问子字符串,可以使用方括号来 ...

  6. PHP fileowner() 函数

    定义和用法 fileowner() 函数返回指定文件的用户 ID(所有者). 如果成功,该函数返回用户 ID.如果失败,则返回 FALSE. 语法 fileowner(filename) 参数 描述 ...

  7. PHP sleep() 函数

    实例 延迟执行当前脚本 5 秒: <?phpecho date('h:i:s') . "<br>"; //sleep for 5 secondssleep(5); ...

  8. SparkSQL & Spark on Hive & Hive on Spark

    刚开始接触Spark被Hive在Spark中的作用搞得云里雾里,这里简要介绍下,备忘. 参考:https://blog.csdn.net/zuochang_liu/article/details/82 ...

  9. three.js 自制骨骼动画(二)

    上一篇说了一下自制骨骼动画,这一篇郭先生使用帧动画让骨骼动画动起来.帧动画是一套比较完善的动画剪辑方法,详细我的api我们就不多说了,网上有很多例子,自行查找学习.在线案例请点击博客原文.话不多说先上 ...

  10. Jdbc Template初步了解

    JdbcTemplate简介 Java语言提供了jdbc来访问数据库,在jdbc api中需要手动的获取和释放连接等资源,使用起来需要做许多重复的工作.Spring在jdbc api的基础上做了抽象和 ...