python 07 字典 集合
字典
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 字典 集合的更多相关文章
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
- python元组-字典-集合及其内置方法(下)
列表补充 补充方法 清空列表 clear # clear 清空列表 l = [1, 2, 3, 4, 4] print(l.clear()) # clear没有返回值(None) print(l) # ...
- python --- 05 字典 集合
一.字典 可变数据类型 {key:value}形式 查找效率高 key值必须是不可变的数据类型 1.增删改查 1).增 dic["新key"] = "新va ...
- Python中字典和集合
Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- python --->字典 集合 学习笔记
1.字典--->创建空字典:dict={} broa=["李宁",”耐克“,“阿迪达斯”,“鱼c工作室”] sloga=[“A”,“B”,“C”,“D”] dict={&qu ...
- 巨蟒python全栈开发-第5天 字典&集合
今日大纲: 1.什么是字典 字典是以key:value的形式来保存数据,用{}表示. 存储的是key:value 2.字典的增删改查(重点) (1) 添加 dic[新key] = 值 setdefau ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
随机推荐
- ES模糊查询来对应mysql的like查询
使用ES查询来对应mysql的like查询 建立一个测试索引 PUT /test_like1 { "mappings" : { "properties" : { ...
- circle踢人(约瑟夫环) c++
这里更新指针法,真的每句都是坑 (寥寥数十句,句句都是坑) // // Created by snnnow on 2020/4/12. //question:转圈,一共N个人,数到M的出列,求最后一个 ...
- LFM oversea投资笔记、思摩尔、移卡、建业新生活、鑫苑物业
LFM oversea 1.公司简介 2.业务展望 3. 投资策略 LFM oversea介绍 LFM oversea是在开曼成立的投资基金, 专注于中国优质企业在香港和美国IPO过程中的 基石.锚定 ...
- redis实操-sentinel
本文主要记录一些操作步骤,作为自己学习的一个记录,也供虚拟机上学习redis的人参考. 实操篇,可以参考 http://redis.cn/ 主从复制实操 在test目录下新建配置进行练习 1.mkdi ...
- nginx静态资源防盗链
含义: 用于阻止 Referer 头字段为无效值的请求访问站点.需记住的是,使用适当的 Referer 字段值来伪造请求非常容易,因此本模块的预期目的不是要彻底阻止此类请求,而是阻止常规浏览器发送的大 ...
- 部分浏览器 set-cookie 不成功踩坑记录
事件起因: 公司正在做一个sso的单点登录的项目,做完之后,在测试阶段,不同的终端的兼容测试时候,好几个不同的浏览器出现了不同的问题,有登录之后自动退出,有登陆不成功等问题. 在 pc 端只有 uc ...
- PHP md5_file() 函数
实例 计算文本文件 "test.txt" 的 MD5 散列: <?php高佣联盟 www.cgewang.com$filename = "test.txt" ...
- PDO::inTransaction
PDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, Bundled pdo_pgsql) 说明 语法 bool PDO::inTransaction ...
- C/C++编程笔记:流行的数字游戏【2048】,C语言400行源代码分享
游戏介绍 你玩过2048吗?2048是一款流行于各大网页和手机的数字游戏,手机安卓版推出的是<挑战2048>,之后的版本中还加入了双人对战的游戏模式,更加受到玩家的热捧. 2048的游戏规 ...
- windows:驱动模块隐藏
windwos下想要搞点事,权限当然是越大越好:驱动模块天生在0环,和操作提供平级,大家互相是兄弟,所以很多外挂.木马.病毒都会使用驱动达到自己的目的.那么问题来了:PCHUNTER这种工具能查到系统 ...