如何解决根据Python中的字典值隔离输入数据
如果dict中存在/不存在输入数据,则需要对其进行隔离:
输入文件:
1,aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba
2,aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba
3,aaaaaaaangdg77mg3cxnialazk7whbtdidftz3rv2bhqrxcvymaecagxdq
4,aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba
5,aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba
6,aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa
7,aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa
基于mapping_hash将脚本与上述文件分离的脚本
# Check if the col[2] in the file is part of this dictionary
mapping_hash = {"ad1": "aaaaaaaangdg77mg3cxnialazk7whbtdidftz3rv2bhqrxcvymaecagxdq","ad2":"aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba"}
absnt_dict= {}
Present_dict = {}
# Read the file
with open('so_input') as f:
for row in f:
row=row.strip().split(',')
row_number = row[0]
hash =row[1]
print("--------------")
for key,value in mapping_hash.items():
#check if file value is part of mapping_hash dictionary
if hash == value:
print "Yes"
Present_dict[row_number] = mapping_hash.keys()
else:
print "Na"
absnt_dict[row_number] = hash
print Present_dict
print absnt_dict
输出:
--------------
Yes
Na
--------------
Yes
Na
--------------
Na
Yes
--------------
Yes
Na
--------------
Yes
Na
--------------
Na
Na
--------------
Na
Na
Row part of Hash:
{'1': ['ad2','ad1'],'3': ['ad2','2': ['ad2','5': ['ad2','4': ['ad2','ad1']}
Row not part of Hash:
{'1': 'aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba','3': 'aaaaaaaangdg77mg3cxnialazk7whbtdidftz3rv2bhqrxcvymaecagxdq','2': 'aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba','5': 'aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba','4': 'aaaaaaaa3nawwqfzplgms3u4n7kobqq344sqkn3e75zpsek7kxgaskwsba','7': 'aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa','6': 'aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa'}
这里,根据字典中元素的数量,循环将迭代并创建重复的条目!
- 我希望6和7应该是 absnt_dict 的一部分,其余部分应该是 Present_dict
- 输出1应该是
ad2
,而不像列出两个值'1': ['ad2','ad1']
解决方法
这是因为即使遇到“当前”也要继续检查
Present_dict[row_number] = "Present"
因此,所有哈希都插入了absnt_dict
中。
您应该改用会员资格检查
# Read the file
with open('so_input') as f:
for row in f:
row=row.strip().split(',')
row_number = row[0]
hash =row[1]
print("--------------")
if hash in mapping_hash.values():
print "Yes"
Present_dict[row_number] = "Present"
else:
print "Na"
absnt_dict[row_number] = hash
结果:
{'1': 'Present','3': 'Present','2': 'Present','5': 'Present','4': 'Present'}
{'7': 'aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa','6': 'aaaaaatbmbxncexycbtsyrnhexniqr7g4vypfuksh5ezmzymuw7k2bw4sa'}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。