如何在 python 中加入地图的值?

How to join values of map in python?

这是一个用于模式匹配问题的 .py 文件:

import sys
def pattern_matching(pattern,genome):
    loc = []
    for i in range(len(genome) - len(pattern) + 1):
        if  pattern == genome[i:i+len(pattern)]:
            loc.append(i)
    return loc
if __name__ == '__main__':
    if len(sys.argv) == 2:
        filename = sys.argv[1]
        with open(filename) as f:
            lines = f.read().splitlines()
        pattern = lines[0]
        genome = lines[1]
    else:
        pattern = 'ATAT'
        genome = 'GATATATGCATATACTT'
    loc = pattern_matching(pattern,genome)
  print ",".join(map(str,loc))

但是第 22 行显示一个名为“SyntaxError: invalid syntax”的错误。如何打印结果?

修复 Unexpected Unindenting 并封装 print() 语句(如果您使用的是 > python3

版本)
import sys
def pattern_matching(pattern,genome):
    loc = []
    for i in range(len(genome) - len(pattern) + 1):
        if  pattern == genome[i:i+len(pattern)]:
            loc.append(i)
    return loc
if __name__ == '__main__':
    if len(sys.argv) == 2:
        filename = sys.argv[1]
        with open(filename) as f:
            lines = f.read().splitlines()
        pattern = lines[0]
        genome = lines[1]
    else:
        pattern = 'ATAT'
        genome = 'GATATATGCATATACTT'
    loc = pattern_matching(pattern,genome)
    print(",".join(map(str,loc))) # Corrected unindent and encapsulated print

转成列表就可以了

 print(",".join(list(map(str,loc))))

在python2.x中,map函数return一个列表,其中return一个地图对象在python3.x中,所以你需要转换map的return函数到列表。