我有一个脚本通过计算文件中的模式来生成python字典,并在文件的计数结果之前写入文件名(basename)和标题(安静的大代码,我认为这对于问题无关紧要)。
print(basename, header, counts)
计数的输出是模式和值。
我的输出如下:
filename1 header1 {'pattern1': 1, 'pattern2': 2}
filename1 header2 {'pattern3': 2, 'pattern4': 1}
filename2 header1 {'pattern5': 3, 'pattern6': 1}
我想将模式和计数写入txt文件,其中包含每个字典键和值的文件名和标题,用空格分隔,如下所示
filename1 header1 pattern1 1
filename1 header1 pattern2 2
filename1 header2 pattern3 2
filename1 header2 pattern4 1
filename2 header1 pattern5 3
filename2 header1 pattern6 1
但我不知道如何实现这一目标。有人可以帮我编写输出这样的命令吗?
答案 0 :(得分:0)
在你拥有arr=( 1 2 3 4 5 6 7 8 9 )
for ((i=0; i<${#arr[@]}; i+=2)); do echo "${arr[i]}"; done
1
3
5
7
9
的循环中,只需在字典上添加另一个循环。
print(basename, pattern, counts)
for loop...: # not sure what it looks like
for k, v in counts.items():
print(basename, pattern, k, v)
为counts.items()
,python3
使用counts.iteritems()
答案 1 :(得分:0)
你可以这样做:
for item in counts:
print(basename, header, item, counts[item])
另外,你可以在一行中做到这一点,但这有点棘手;)
print(basename, header, '\n%s %s '.join([(" ".join([str(lst),str(counts[lst])])) for lst in counts]) %(basename, header))