0

私はこれまでにそのようなことをしました:

   count={'letters':['a','b','c'],'digits':[1,2,3,4,5,6,7,8,9,0]}

    print ([k for k,v in count.items()],[len(v) for k,v in count.items()])

何を印刷するか

(['digits', 'letters'], [10, 3])

しかし、リスト内包表記のおかげで、beloweのようなものを印刷し、インライン用に1つだけ使用したいと思います:

'digits', 10 ; 'letters', 3
4

7 に答える 7

1

もう少し読みやすいものはどうですか?

for k, v in count.items():
    print('{}: {}'.format(k, len(v)))

letters: 3
digits: 10
于 2013-11-14T06:20:49.710 に答える
1
> print {k:len(v) for k,v in count.items()}
{'digits': 10, 'letters': 3}

また、[k for k,v in count.items()]ちょうどcount.keys()です。

于 2013-11-14T06:21:11.010 に答える
1

forこのような1つのループでこれを簡単に行うことができます

print [(k, len(v)) for k, v in count.items()]

出力

[('digits', 10), ('letters', 3)]
于 2013-11-14T06:16:23.810 に答える
0

for ループなし

print("\n".join(map("{}: {}".format, count, map(len, count.values()))))

または、満足している場合は['digits: 10', 'letters: 3']

list(map("{}: {}".format, count, map(len, count.values())))
于 2013-11-14T06:33:27.090 に答える
0

はい、for ループと 1 つのみで可能です :)

これが方法です...

コード:

count={'letters':['a','b','c'],'digits':[1,2,3,4,5,6,7,8,9,0]}

for (k,v) in count.items():
    print k +',' + str(len(v)) +';',

出力:

digits,10; letters,3;

お役に立てれば :)

于 2013-11-14T06:22:20.177 に答える