大数据区 > Python字典 Python字典

11 篇文章 0 订阅
5 篇文章 0 订阅

在这篇文章中,我们将介绍Python字典的概念,它们用于什么,以及如何在Python代码中使用字典。
Python字典是由逗号分隔的键/值或项对的序列。

Python字典是通过使用大括号({}).

创建空字典的语法是:

< variable-name > = {}

< variable-name > = dict()

创建带有项的Python字典的语法是:

= { key : value , key : value }

键和值对称为项,键和值用冒号分隔(😃。每一项都用逗号分隔。,),整件事情都用花括号({}).

Python字典的特性
Python字典的键不能更改。
可以更改键的值。
排序不显着。在字典中输入项的顺序可能与返回项的顺序不同。
Python字典的特性:Key
键对于使用它们的Python字典是唯一的。我们不能两次分配相同的密钥。

让我们看一个例子。

dict1 = {“Mohit” : 1, “Rahul” : 2, “Mohit” : 3}
dict1
{‘Mohit’: 3, ‘Rahul’: 2}

在上面的例子中,我们使用了相同的键,Mohit, 两次,尽管程序没有出现任何错误。但是,y可以看到最近的钥匙取代了旧的钥匙。

int, float,和string 可以用作钥匙。不包含任何列表的元组可以用作键。让我们看看这个例子。

tuple = ()
dict2 = {tuple : “a”}
dict2
{(): ‘a’}

tuple1 = ( [],9 )
dict2 = { tuple1 : “a” }
追溯(最近一次调用):

File “”, line 1, in
TypeError: unhashable type: ‘list’

在该示例中,非常清楚的是,如果使用带有列表的元组,则解释器将抛出一个错误。

Python字典的特性:值
这个值可以重复。

你可以在价值中存储任何东西。

Y可以从字典中添加和更新值。

让我们创建一个空字典并添加一些项目。

AV = {}
AV[ ‘IRON-MAN’ ] = “Tony Stark”
AV[ ‘Thor’ ] = “Chris”
AV
{ ‘IRON-MAN’ : ‘Tony Stark’, ‘Thor’ : ‘Chris’ }

Let us update the values ‘Chris’.

AV[ ‘Thor’ ] = “Chris Hemsworth”
AV
{‘IRON-MAN’ : ‘Tony Stark’, ‘Thor’ : ‘Chris Hemsworth’}

您已经看到,我们可以使用字典的键来更新值。

访问Python字典的值
与Python列表一样,Python字典中不存在索引。这些值只能通过其键访问。

让我们以计算机网络端口为例。

port1 = { 22: “SSH”, 23 : ‘Telnet’, 80: “HTTP”, 53: “DNS”, 443: “HTTPS” }
port1[22]
‘SSH’

port1[53]
‘DNS’

port1[67]
追溯(最近一次调用):

File “”, line 1, in
KeyError: 67
您可以看到如果一个键不存在,那么解释器就会显示一个错误。为了解决这个问题,get()方法被使用。参见下面的示例。

port1.get(53, “not found” )
‘DNS’

port1.get(67, “not found” )
‘not found’

而不是错误,一个定制的消息将被打印出来。

检查密钥是否存在的不同方法
在本节中,我们将看到如何检查某个特定的键是否存在。

你已经看到get() 方法。

port1.get( 22, “Key not found”)
‘SSH’

port1.get( 24, “Key not found”)
‘Key not found’

HASKEY()
这个has_key()方法返回True 和False陈述。

port1.has_key(22)
True

port1.has_key(24)
False

使用in运算符

if 22 in port1:
… print “Key found”

Key found

删除Python字典的元素
您可以删除字典的单个元素,也可以删除整个字典。

port1 = {22: “SSH”, 23 : ‘Telnet’,80: “HTTP”, 53: “DNS”, 443: “HTTPS”}
del port1[22]
port1
{80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’, 23: ‘Telnet’}

del port1
port1
追溯(最近一次调用):

File “”, line 1, in
NameError: name ‘port1’ is not defined
您可以看到错误,因为名为port的字典确实存在于命令del port 1之后。

使用for循环迭代Python字典
为了迭代Python字典,我们使用了items()或iteritems()方法。这个items()方法返回元组对的列表。这个iteritems()方法是节省内存的迭代器。

在Python 3中,iteritems() 方法已被移除,并且items()方法的工作方式与iteritems()方法。

port1 = {22: “SSH”,23:’Telnet’,80: “HTTP”, 53: “DNS”, 443: “HTTPS” }
for k, v in port1.items():
print k, ” : ” ,v
产出:在这里插入图片描述
考虑一下,您想用另一个字典更新字典。

参见下面的示例。

port1 = { 22: “SSH”, 23 : ‘Telnet’,80: “HTTP” }
port2 = { 53: “DNS”, 443: “HTTPS” }
port1.update( port2 )
print port1
产出:

{ 80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’, 22: ‘SSH’, 23: ‘Telnet’ }
到目前为止,您已经了解了Python字典的创建、删除项、添加项和更新项。让我们创建一个现有字典的副本。为了复制字典,我们将使用copy() 方法。

port1 = {80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’ }
port2 = port1.copy()
port2
{80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’}

id(port1)
47341080L

id(port2)
47374680L

在上面的例子中,一本新字典,port2 ,它是port1,已经被创造了。

这两本字典的内存地址是不同的。

实例
让我们用两个列表创建一个字典。

list1 = [1 ,2, 3, 4]
list2 = [ ‘a’, ‘b’, ‘c’, ‘d’ ]
dict1 = { }
for i in xrange( len(list1) ):
dict1[list1[i]] = list2[i]
print dict1
产出:

{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’}
同样的结果可以在一条线上实现。参见下面的示例。

list1 = [1 ,2, 3, 4]
list2 = [ ‘a’, ‘b’, ‘c’, ‘d’ ]
print dict(zip(list1,list2))
产出:

{1:‘a’,2:‘B’,3:‘C’,4:‘d’}

下文见 喜欢的收藏点赞
资料私信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值