如何使用 for 循环构建字符串长度字典?
How to build a dictionary of string lengths using a for loop?
我是 python 的新手,但我知道基本命令。我正在尝试创建一个 for 循环,当给定一个句子列表时,它会为每个句子的长度添加一个键。每个键的值将是列表中该句子长度的频率,因此格式看起来像这样:
dictionary = {length1:frequency, length2:frequency, etc.}
我似乎找不到任何以前回答过的专门处理此问题的问题 - 使用基本函数创建键,然后根据该结果的频率更改键的值。这是我的代码:
dictionary = {}
for i in sentences:
dictionary[len(i.split())] += 1
当我尝试 运行 代码时,我收到此消息:
Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
dictionary[len(i.split())] += 1
KeyError: 27
如果能帮助修复我的代码并解释我出错的地方,我们将不胜感激!
我认为这会解决您的问题,在 Python 3:
sentences ='Hi my name is xyz'
words = sentences.split()
dictionary ={}
for i in words:
if len(i) in dictionary:
dictionary[len(i)]+=1
else:
dictionary[len(i)] = 1
print(dictionary)
输出:
{2: 3, 3: 1, 4: 1}
在字典中,首先你必须为键分配一些值,然后你才能使用该值进行进一步的计算或者还有其他方法defaultdict
为每个键分配默认值。
希望对您有所帮助。
我是 python 的新手,但我知道基本命令。我正在尝试创建一个 for 循环,当给定一个句子列表时,它会为每个句子的长度添加一个键。每个键的值将是列表中该句子长度的频率,因此格式看起来像这样:
dictionary = {length1:frequency, length2:frequency, etc.}
我似乎找不到任何以前回答过的专门处理此问题的问题 - 使用基本函数创建键,然后根据该结果的频率更改键的值。这是我的代码:
dictionary = {}
for i in sentences:
dictionary[len(i.split())] += 1
当我尝试 运行 代码时,我收到此消息:
Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
dictionary[len(i.split())] += 1
KeyError: 27
如果能帮助修复我的代码并解释我出错的地方,我们将不胜感激!
我认为这会解决您的问题,在 Python 3:
sentences ='Hi my name is xyz'
words = sentences.split()
dictionary ={}
for i in words:
if len(i) in dictionary:
dictionary[len(i)]+=1
else:
dictionary[len(i)] = 1
print(dictionary)
输出:
{2: 3, 3: 1, 4: 1}
在字典中,首先你必须为键分配一些值,然后你才能使用该值进行进一步的计算或者还有其他方法defaultdict
为每个键分配默认值。
希望对您有所帮助。