1

文字列をキーとして格納し、整数を値として格納する辞書があります。私の出力では、キーを括弧やコンマなしの文字列として表示したいと考えています。どうすればいいですか?

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() を使用して、文字列のままであることを確認しましたが、出力は名前がタプルの場合と同じです

4

4 に答える 4

4

私は Python 3 を持っていないので、これをテストすることはできませんが、f_name の出力は、1 つの要素を持つタプルのように見えます。したがって、次のように変更.format(f_name, f_loc)します.format(f_name[0], f_loc)

編集

編集に応じて、.group()代わりに使用してみてください.groups()

于 2009-05-29T21:58:14.073 に答える
3

ピーターの答えを詳しく説明すると、辞書のキーとして1項目のタプルを割り当てているように見えます。どこかの括弧内の式を評価し、それをキーとして使用している場合は、そこにコンマが含まれていないことを確認してください。

さらに編集した回答を見ると、正規表現一致の groups() メソッドを使用しているためです。これは のタプルを返します(the entire matched section + all the matched groups)。グループがないため、全体が必要です。group()パラメータなしでそれが得られます。

于 2009-05-29T22:00:23.350 に答える
2

解析コードに問題があると思います。書かれた行は期待どおりに機能するはずです。

于 2009-05-29T21:58:06.163 に答える
1

キーはある種のタプルであるため、印刷する前に異なる要素を結合したい場合があります。示されているスニペットからは、キーの重要性を実際に判断することはできません。

したがって、次のようなことができます。

.format(", ".join(f_name), f_loc)
于 2009-05-29T22:17:34.877 に答える