Python 将列表串成字符串

Python 将列表串成字符串,python,string,list,Python,String,List,我有一个字符串列表: ['TTGGGAGAA', 'TTGGGAGCA', 'TTGGGAGTA'] 我想测试此列表中是否存在字符串: 例如,测试我的列表中是否存在“GTA”(=子序列) 我试过: OK = subsequence in list if OK == True: print (true) else: pass 但它不起作用。有人能帮我吗 这是不正确的,因为它会将列表的整个元素与子序列进行比较。而是这样做, for word in list: if subse

我有一个字符串列表:

['TTGGGAGAA', 'TTGGGAGCA', 'TTGGGAGTA']
我想测试此列表中是否存在字符串: 例如,测试我的列表中是否存在“GTA”(=子序列)

我试过:

OK = subsequence in list 
if OK == True: 
    print (true)
else: pass

但它不起作用。有人能帮我吗

这是不正确的,因为它会将列表的整个元素与
子序列进行比较。而是这样做,

for word in list:
    if subsequence in word:
        OK = True
        break
您可以使用函数将其压缩为一行。使用

OK = any(subsequence in word for word in list)
您正在寻找一个子序列,所以

不起作用,因为它检查整个列表

你应该做:

OK = any(subsequence in l for l in list)

注意:我不建议使用“list”作为变量名,因为它在Python中是一个保留的关键字。

您可以尝试以下列表理解:

a = ['TTGGGAGAA', 'TTGGGAGCA', 'TTGGGAGTA']

any(["GTA" in x for x in a])

如果数组中有任何序列包含
“GTA”
,则返回
True

完成此任务的一种方法是使用正则表达式

alist = ['TTGGGAGAA', 'TTGGGAGCA', 'TTGGGAGTA', 'TGA']

print('GTA' in alist) # False 
print('TGA' in alist) # True as TGA is a list element

# this is what you probably want
# string search instead of list search
print('GTA' in '|'.join(alist)) # True
这样,您就可以在列表中的字符串中搜索您的模式

下面是一个简单的例子:

import re
pattern = re.compile('GTA')
src_list = ['TTGGGAGAA', 'TTGGGAGCA', 'TTGGGAGTA']
for element in src_list
    if re.findall(pattern, element):
        print(True)
        break

注意:re.compile编译模式,因此进一步的搜索速度更快。

只是一个示例代码供您参考,请帮助检查它是否适合您。 这是比较一个列表和另一个列表的最佳方法

listab =  ['a', 'b']
listabc = ['a', 'b', 'c']
if all(each in listabc for each in listab):
    print "It is the subsequence"
else:
    print "Not a subsequence"

如果您正在寻找子序列,我建议使用for循环来迭代每个单词,并查看子序列是否在单词中。如果您想查看列表中的任何项目是否包含子序列,可以使用。例如:
如果有(mylist中x的子序列):打印(“找到”)
如果列表中的子序列:
,为什么不写
?它不像
OK
是一个有意义的名字。好吧,那就行了!但是现在:如果我的子序列也是字符串列表呢。因此,我正在寻找两个列表之间的匹配。如果有相同的子串;打印“确定”是否总是将第一个字符串与第一个子序列进行比较?改为在问题中添加注释,或者最好问一个新问题看起来你把原来的问题复杂化了,
中的
关键字足以回答问题,并且不需要正则表达式。此外,您将错误的参数传递给
re.findall
@TrakJohnson使用正则表达式背后的想法是随着列表的增长而扩展解决方案。khelwood,re.findall的正确参数是什么?@XeroSmith您正在使用变量
element
迭代
src\u list
,但是您在调用
findall
@khelwood时使用
src\u list
而不是
element
,谢谢,我看到了错误。我已作了相应的更正。我仍然支持可扩展解决方案的观点。
listab =  ['a', 'b']
listabc = ['a', 'b', 'c']
if all(each in listabc for each in listab):
    print "It is the subsequence"
else:
    print "Not a subsequence"