python – 查找字符和数字之间可能的双射
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 查找字符和数字之间可能的双射,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含920字,纯文字阅读大概需要2分钟。
内容图文
![python – 查找字符和数字之间可能的双射](/upload/InfoBanner/zyjiaocheng/826/4eb5ea4c4abf4749b6f5cc6ea1ae8652.jpg)
假设你有一个字符串S和一个列表L中的数字序列,len(S)= len(L).
检查是否可以在字符串的字符与序列中的数字之间找到双射,以使每个字符与一个且仅一个数字匹配,这是最干净的方法.
例如,“aabbcc”应与115522匹配,但不匹配123456或111111.
我有一个复杂的设置,有两个dicts和循环,但我想知道是否有一个干净的方法,可能通过使用Python库中的一些函数.
解决方法:
我会用一套:
In [9]: set("aabbcc")
Out[9]: set(['a', 'c', 'b'])
In [10]: set(zip("aabbcc", [1, 1, 5, 5, 2, 2]))
Out[10]: set([('a', 1), ('c', 2), ('b', 5)])
当且仅当映射是满射时,第二组的长度将等于第一组. (如果不是,你将有两个字母副本映射到第二组中的相同数字,反之亦然)
这是实现这个想法的代码
def is_bijection(seq1, seq2):
distinct1 = set(seq1)
distinct2 = set(seq2)
distinctMappings = set(zip(seq1, seq2))
return len(distinct1) == len(distinctMappings) and len(distinct2) == len(distinctMappings)
如果一个序列比另一个序列短,则也将返回true,但是已经建立了有效的映射.如果序列长度必须相同,则应添加一个检查.
内容总结
以上是互联网集市为您收集整理的python – 查找字符和数字之间可能的双射全部内容,希望文章能够帮你解决python – 查找字符和数字之间可能的双射所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。