我有一个字典,它存储一个字符串作为键,一个整数作为值。在我的输出中,我希望将键显示为不带括号或逗号的字符串。我该怎么做?
for f_name,f_loc in dict_func.items():
print ('Function names:\n\n\t{0} -- {1} lines of code\n'.format(f_name, f_loc))
输出:
Enter the file name: test.txt
line = 'def count_loc(infile):'
There were 19 lines of code in "test.txt"
Function names:
('count_loc(infile)',) -- 15 lines of code
只是因为不清楚,我希望输出的最后一行显示为:
count_loc(infile) -- 15 lines of code
编辑
name = re.search(func_pattern, line).groups()
name = str(name)
在我的输出之前使用type(),我验证它仍然是一个字符串,但输出就像名字是一个元组时那样
答案 0 :(得分:4)
我没有Python 3所以我无法测试它,但是f_name的输出使它看起来像是一个元组,其中包含一个元素。因此,您可以将.format(f_name, f_loc)
更改为.format(f_name[0], f_loc)
修改强>:
在回复您的修改时,请尝试使用.group()
代替.groups()
答案 1 :(得分:3)
详细说明Peter's answer,我认为您正在指定一个项目tuple作为词典的关键字。如果你在某个地方的括号中评估一个表达式并将其作为键,那么请确保你没有逗号。
查看您进一步编辑的答案,确实是因为您正在使用正则表达式匹配的groups()方法。返回(the entire matched section + all the matched groups)
的元组,因为你没有组,你想要整个事情。没有参数的group()
会给你这个。
答案 2 :(得分:2)
我希望你的解析代码有问题。写入的行应该按预期工作。
答案 3 :(得分:1)
由于键是某种类型的元组,因此您可能希望在打印前加入不同的元素。我们无法从显示的片段中确切地知道密钥的重要性。
所以你可以这样做:
.format(", ".join(f_name), f_loc)