我是阿拉巴马大学的CS专业,我们在我们的python类中有一个项目,我卡住了...可能是因为一些愚蠢的原因,但我不能找到答案。如何合并python3中的分隔标记两个列表
这里是项目的链接,因为在这里尝试和解释会很麻烦。
http://beastie.cs.ua.edu/cs150/projects/project1.html
这里是我的代码:
import sys
from scanner import scan
def clInput():
#Gets command line input
log1 = sys.argv[1]
log2 = sys.argv[2]
name = sys.argv[3]
if len(sys.argv) != 4:
print('Incorrect number of arguments, should be 3')
sys.exit(1)
return log1,log2,name
def openFiles(log1,log2):
#Opens sys.argv[1]&[2] for reading
f1 = open(log1, 'r')
f2 = open(log2, 'r')
return f1, f2
def merge(log1,log2):
#Merges parsed logs into list without '---'
log1Parse = [[]]
log2Parse = [[]]
log1Count = 0
log2Count = 0
for i in log1:
if i != ['---']:
log1Parse[log1Count].append(i)
else:
log1Count += 1
log1Parse.append([])
for i in log2:
if i != ['---']:
log2Parse[log2Count].append(i)
else:
log2Count += 1
log2Parse.append([])
return(log1Parse[0] + log2Parse[0] + log1Parse[1] + log2Parse[1])
def searchMerge(name,merged):
#Searches Merged list for sys.argv[3]
for i in range(len(merged)):
if (merged[i][1] == name):
print(merged[i][0],merged[i][1]," ".join(merged[i][2:]))
def main():
log1,log2,name = clInput()
f1,f2 = openFiles(log1,log2)
#Sets the contents of the two scanned files to variables
tokens1 = scan(f1)
tokens2 = scan(f2)
#Call to merge and search
merged = merge(tokens1,tokens2)
searchMerge(name,merged)
main()
确定。所以继承人的问题。我们将两个列表合并到一个排序的主列表中,这些列表的分隔符位于---的
我的两个日志文件与我上面链接的网站上发布的日志文件相匹配。此代码有效,但如果每个列表中有两个以上的实例---它不会跳转到下一个列表以获取其他标记,等等。我有它与合并功能两个工作。在该函数结束时我返回
return(log1Parse[0] + log2Parse[0] + log1Parse[1] + log2Parse[1])
但这只适用于两个实例---。无论如何,我可以改变我的回报来查看所有索引,而不必手动输入[0],[1],[2]等。我需要它来分割和合并任意数量。请帮忙!!
p.s.无视noobness ...即时通讯新手,我们都必须从某处开始
p.p.s. - 从该扫描仪扫描输入是一台扫描仪我写采取所有的标记在给定的列表
非常感谢你的快速回复,但是我需要有输出作为一切: 12时06分12秒马特登录 13时30分07秒马特打开终端 15:02:00马特打开演变 15:31:16马特注销 – 2011-03-25 03:38:33
我要回去编辑代码,但看看我在底部链接的文档。将列表与空格连接在一起:'print'“for循环中的.join(result)'应该让你找到格式 – DTing 2011-03-25 03:41:36
谢谢先生,救命! – 2011-03-25 03:43:48