![](/img/trans.png)
[英]Check if a value from a list of values in a python dictionary exists in another dictionary
[英]Check if a number exists in another list in python
我有两个列表,其中包含以下类型的信息。
List #1:
Request = ["1/1/1.34", "1/2/1.3.5", "1/3/1.2.3", ...same format elements]
List #2:
Reply = ["1/1/0", "1/3/1", "1/2/0", ...same format elements]
从“回复”列表中,我希望能够比较“#/#/#”中的第二项,在这种情况下它将是1,3,2,依此类推回复列表中的所有项目并检查“请求列表”中的第二项是否匹配。 如果存在匹配,那么我希望能够返回一个新列表,该列表将包含请求字符串中第三个索引的信息,该字符串附加了回复中匹配字符串的第三个索引。
The result would be like the following.
Result = ["1.34.0", "1.3.5.0", "1.2.3.1"]
请注意,0附加到1.34,1附加到1.3.4,0从“Reply”列表中的相应索引附加到1.2.3,因为第二个索引存在于“Reply”列表中。 “回复”列表可以将项目放在列表中的任何位置。
我无法找到一种简单的方法来逐个比较第二个索引的列表。 我真的很困惑,如果有人能帮助我,我将不胜感激。
谢谢
您还可以使用列表推导和字符串比较来构建它:
res = [f"{i.split('/')[-1]}.{j.split('/')[-1]}" \
for i in Request for j in Reply \
if i.split('/')[1] == j.split('/')[1] ]
res
Out[1]:
['1.34.0', '1.3.5.0', '1.2.3.1']
您可以尝试只获取您感兴趣的项目然后进行比较。 像这样的东西:
iRequest = {}
for x in Request:
iRequest[x.split('/')[1]] = x
那会给你一个字典看起来像这样:
{'1':'1/1/1.34', '2':'1/2/1.35', ...and so on}
在使用“ Reply
列表执行相同操作后,您可以浏览新iReply
中的每个项目(或您选择调用的任何内容)字典并检查它是否在iRequest
。 例如:
similar = []
for x in iReply:
if x in iRequest:
similar.append(iReply[x])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.