【发布时间】:2014-08-18 10:12:46
【问题描述】:
我正在寻找一种方法来有效地搜索具有特定值序列的列表。顺序很重要!例如:
[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 - 如果序列相反
我当前的功能不完整。但是,我认为应该有更优雅的方法来解决问题
【问题讨论】:
-
假设您没有重复:在 mylist2 中查找 x=mylist1[0],如果不存在,则返回 False。从 mylist2 中删除 x 并将相同的逻辑递归应用于 mylist1[1:]
标签: python list python-3.x return