python dict update保持顺序_python – 我可以相信每次迭代时dict的顺序保持不变吗?...

我有以下三个字符串(它们独立存在,但为方便起见,这里一起显示):

from mx2.x.org (mx2.x.org. [198.186.238.144])

by mx.google.com with ESMTPS id g34si6312040qgg.122.2015.04.22.14.49.15

(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);

Wed, 22 Apr 2015 14:49:16 -0700 (PDT)

from HQPAMAIL08.x.org (10.64.17.33) by HQPAMAIL13.x.x.org

(10.34.25.11) with Microsoft SMTP Server (TLS) id 14.2.347.0; Wed, 22 Apr

2015 17:49:13 -0400

from HQPAMAIL13.x.org ([fe80::7844:1f34:e8b2:e526]) by

HQPAMAIL08.iadb.org ([fe80::20b5:b1cb:9c01:aa86%18]) with mapi id

14.02.0387.000; Wed, 22 Apr 2015 17:49:12 -0400

我希望根据字符串的反转(从下到上)顺序填充一些带有某些值的字典.具体来说,对于每个字符串,我将IP地址提取为排序索引,然后将完整字符串作为值.

鉴于顺序很重要,我决定使用列表,并且最初做了类似的事情(伪代码,带有上面的一堆文本):

IPs =[]

fullStrings =[]

for string in strings:

IPs.append[$theIpAddressFoundInTheString]

fullstrings.append[$theWholeString]

产生以下两个列表(再次,只是一个例子):

IPs ['198.186.238.144', '10.64.17.33', 'fe80::7844:1f34:e8b2:e526']

fullstrings ['from mx2.x.org (mx2.x.org. [198.186.238.144])

by mx.google.com with ESMTPS id g34si6312040qgg.122.2015.04.22.14.49.15

(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);

Wed, 22 Apr 2015 14:49:16 -0700 (PDT)', 'from HQPAMAIL08.x.org (10.64.17.33) by HQPAMAIL13.x.x.org

(10.34.25.11) with Microsoft SMTP Server (TLS) id 14.2.347.0; Wed, 22 Apr

2015 17:49:13 -0400', 'from HQPAMAIL13.x.org ([fe80::7844:1f34:e8b2:e526]) by

HQPAMAIL08.x.org ([fe80::20b5:b1cb:9c01:aa86%18]) with mapi id

14.02.0387.000; Wed, 22 Apr 2015 17:49:12 -0400']

这已经很好了直到一点,但现在当我开始用这些列表中的值填充dict(在硬编码索引处),与其他列表中的值(再次在硬编码索引中)进行比较时,不仅调试变得痛苦,代码变得不可持续.

我开始使用dict重写(返回一个dict,其中IP地址是键,完整的字符串是值).然后我将执行以下操作:

for k,v in myDictOfIpsAndStrings:

anotherDict[$someHardcodedText] = k

anotherDict[$otherHardcodedText] = v

这是我的担忧:我可以确定dict,无论何时迭代,都将按照dict创建的顺序完成?如果没有,我唯一的选择是恢复到列表(以及繁琐和脆弱的长度比较,这样做的固有分配)等等?

我知道一个字典本质上是未分类的.我知道排序的函数,但我不打算按任何降序/升序等对它们进行排序,而不是维护(以某种方式)创建dict的顺序.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值