找到字符串长度并存储在dict中

时间:2015-03-12 16:14:33

标签: python

我有一个样本列表

a = ['be','see','tree'....]

用户将提供raw_input作为名称。然后,它必须打印名称以及列表中的每个单词,然后需要找到名称的总字符数以及列表中的每个单词。

Atlast,我需要将它存储在字典中。

如: - raw_input name = 'jean',然后必须打印:

jean be
jean see
jean tree

然后我需要在字典中存储: -

{'jean be':'6','jean see':'7','jean tree':'8'}

我的编码:

a=['be','see','tree']
x = raw_input("Enter the query x ")
for item in a:
    length =len(item[i] + x)

我不确定,它是多么正确,我不知道如何将它存储在字典中。

3 个答案:

答案 0 :(得分:2)

您可以使用字典理解将项目保存在字典中:

>>> inp=raw_input()
>>> {inp+' '+i:len(inp+i) for i in a}
{'jean see': 7, 'jean be': 6, 'jean tree': 8}

并使用for循环打印欲望对:

>>> for i in a:
...   print inp+' '+i
... 
jean be
jean see
jean tree

但由于没有订购词典,您可以使用collections.OrderedDict创建一个有序的词典:

>>> from collections import OrderedDict
>>> D=OrderedDict()
>>> for k,v in sorted(((inp+' '+i,len(inp+i)) for i in a),key=lambda x:x[1]):
...   D[k]=v
... 
>>> D
OrderedDict([('jean be', 6), ('jean see', 7), ('jean tree', 8)])

答案 1 :(得分:1)

当您有权访问item[i]时,您的错误是尝试使用iitem未定义)。看看这个:

a=['be','see','tree']
x = raw_input("Enter the query x ")
d = dict()
for item in a:
    d[x + ' ' + item] = len(x + item)

print d

答案 2 :(得分:0)

a=['be','see','tree']
somedict = {}
x = raw_input("Enter the query x ")
for i in a:
    neww = x+" "+i
    print neww
    somedict[neww] = len(neww)
print somedict

输出:

Enter the query x {'john tree': 9, 'john be': 7, 'john see': 8}