python-存储在列表中的特定序列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-存储在列表中的特定序列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1060字,纯文字阅读大概需要2分钟。
内容图文
![python-存储在列表中的特定序列](/upload/InfoBanner/zyjiaocheng/679/7145f9c01bde445986f6f1c428e4d8ff.jpg)
我正在寻找一种有效搜索具有特定值序列的列表的方法.顺序很重要!例如:
[x,y,z]和[x,z,y]包含相同的值,但它们的顺序不同
然而:
> [x,y,z],[y,z,x]和[z,x,y]对我来说都是一样的.
> [x,z,y],[z,y,x]和[x,z,y]也都相同.
我认为可以运行脚本来查找连接的一部分.例如,如果我要寻找[x,y,z],我会寻找
mylist1 = ['a','b','c']
mylist2 = ['b','a','c']
def is_sequence_same(thelist,somelist):
if (thelist[0] == somelist[0] and thelist[1] == somelist[1]):
return True
if (thelist[1] == somelist[1] and thelist[2] == somelist[2]):
return True
if (thelist[0] == somelist[1] and thelist[1] == somelist[0]):
return False
if (thelist[0] == somelist[2] and thelist[1] == somelist[2]):
return False
else:
return None
is_sequence_same(mylist1,mylist2)
函数返回:
正确-如果顺序与我要求的相同,
False-如果序列相反
我当前的功能不完整.但是,我认为应该有更优雅的解决方法
解决方法:
使用双端队列:
from collections import deque
def is_sequence_same(l1, l2):
if l1 == l2:
return True
if set(l1) != set(l2) or len(l1) != len(l2):
return False
d2 = deque(l2)
for i in range(len(l2)):
if l1 == list(d2):
return True
d2.rotate()
return False
内容总结
以上是互联网集市为您收集整理的python-存储在列表中的特定序列全部内容,希望文章能够帮你解决python-存储在列表中的特定序列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。