Python学习6.字典与集合

- 字典

字典不同于寻常序列,他可以以关键字为索引,关键字为不可变类型,通常为字符串或数组。
可以用id()判断该数据是否为不可变类型。对其中进行某种操作,若前后数据发生改变,则为不可变类型。反之,则为可变类型。

i=1
print(id(i))
i=i+1
print(id(i))
1708846896
1708846928

可见整数为不可变类型
另一种方法使用hash(),若输出结果不是错误,则该数据为不可变类型

print(hash('asd'))
print(hash(("sda",154,6)))
-5762928790536099348
7189613897085005524

由此可见字符与元组也是不可变类型,而列表不能够被hash,所以他是可变类型
字典使用大括号括起来,逗号隔开
冒号分开键和值,同一字典中,键是不能重复的。

dict 内部存放的顺序和 key 放入的顺序是没有关系的。

dict 查找和插入的速度极快,不会随着 key 的增加而增加,但是需要占用大量的内存。

把数据放入 dict 还可以直接通过 key 放入。

一个 key 只能对应一个 value,多次对一个 key 放入 value,后面的值会把前面的值冲掉。

dict5 = dict(a=1, b=2, c=3)
print(dict5)  
# {'b': 2, 'a': 1, 'c': 3}

dict5['a'] = 11
print(dict5)  
# {'b': 2, 'a': 11, 'c': 3}

dict5['d'] = 4
print(dict5)  
# {'d': 4, 'c': 3, 'a': 11, 'b': 2}

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。

而list相反:

查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

- 集合

与dict类似,set也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

a=set([1,2,3])
print(a)
{1, 2, 3}

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。
通过add(key)方法可以添加元素到set中
通过remove(key)方法可以删除元素

a=set([1,2,3])
a.add(4)
a.remove(2)
print(a)
{1, 3, 4}

除此之外,set可以进行交集或并集的操作

a=set([1,2,3])
a.add(4)
a.remove(2)
print(a)
b=set([2.5,4])
print(a|b)
print(a&b)
{1, 3, 4}
{1, 2.5, 3, 4}
{4}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值