Python入门之基础知识(四)


前言

笔者刚开始学习Python。本文主要记录学习,如有错漏和不足之处,请大家指正❀。本篇主要内容为字典和集合的基础知识。

一、字典是什么?

我们前面说到序列结构有字符串、列表、元祖、字典、集合。其中,字典可以理解为“键值对”的无序可变序列。

a = {'name':'linshen','age':'20'}

如上所示,name和age是键,linshen和20是值。

  • 键是任意不可变、不可重复的数据。它可以是整数、浮点数、字符串以及元祖,但不能是列表或字典。
  • 值则是任意数据,并且可以重复。

二、字典的创建方法

创建字典往往有3种常见方法,如下:

  • 通过{}、dict()来创建字典对象
  • 通过zip()创建字典对象
  • 通过fromkeys创建值为空的字典
>>> a = {"name":"linshenshenshenshijianlu"}
>>> a
{'name': 'linshenshenshenshijianlu'}
>>> type(a)
<class 'dict'>

>>> b= dict(name="linshen")
>>> b
{'name': 'linshen'}
>>> type(b)
<class 'dict'>

通过zip创建字典对象
通过fromkeys创建空字典

三、字典元素的访问

字典元素访问方法如下:

1.通过[ 键 ]获取“值”

>>> h = dict.fromkeys(['name','grade'])
>>> h
{'name': None, 'grade': None}

2.通过get()方法获得“值”

>>> print(a.get('a'))#若不存在则返回空值
None

3.其他方法

除了上面两种,还可以通过4种方法访问字典元素。

  • 利用a.items()列出所有键值对
  • 使用len()键值对的个数
  • 利用a.keys()列出所有的键,利用a.values()列出所有的值
  • 利用in操作符检测某个键是否在字典中(与前面in操作符的用法同理)

四、序列解包是什么?

先看一个例子,如下:

In [1]: a,b,c = [5,2,0]

In [2]: a
Out[2]: 5

In [3]: b
Out[3]: 2

In [4]: c
Out[4]: 0

序列解包适用于任意序列类型,可以将元素序列解包到另一组变量中。
在具体用法上,一方面,利用序列解包可以实现对多个变量的同时赋值;另一方面,序列解包还可以被用来遍历多个序列。

五、表格数据使用字典和列表储存

在我们的日常生活中,可以利用Python将杂乱的数据整理成表格。这一次,我们使用字典和列表储存表格数据。

r1 = {'rank':'1','name':'张三','salary':'50000'}
r2 = {'rank':'2','name':'李四','salary':'30000'}
r3 = {'rank':'3','name':'王五','salary':'10000'}
tb = [r1,r2,r3]
for i in range(len(tb)):
    print(tb[i].get('salary'))

for i in range(len(tb)):
    print(tb[i].get('rank'),tb[i].get('name'),tb[i].get('salary'))

在pycharm中我们运行上述代码,得到结果如下图所示:表格

六、集合的概念与相关操作

集合是一个无序的、不重复的元素序列,其底层实现是字典。集合只有字典的键对象,因此不能重复且唯一。

一般情况下,有2种方式创建集合:

  • 利用{}创建集合
  • 使用set()将可迭代对象转化成集合(但若存在重复数据,则只保留一个)
>>> a = {5,2,0}
>>> a
{0, 2, 5}
>>> type(a)
<class 'set'>

与此同时,集合还涉及到的相关操作有:

  • 利用add增加指定元素
  • 利用remove和clear删除元素
  • 数学概念中的交集、并集、补集与差集

程序示例如下:

>>> a = {10,30,'烤肉'}
>>> b = {'牛舌','猪五花','烤肉'}
>>> a|b#并集
{'猪五花', '牛舌', 10, '烤肉', 30}
>>> a.union(b)#并集
{'猪五花', '牛舌', 10, '烤肉', 30}
>>> a&b#交集
{'烤肉'}
>>> a.intersection(b)#交集
{'烤肉'}
>>> a-b#差集
{10, 30}
>>> a.difference(b)#差集
{10, 30}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值