到目前为止我有这个代码:
def name_counts(name_list):
name_dict = {}
for word in name_list:
if word in name_dict:
name_dict[word] += 1
else:
name_dict[word] = 1
print(name_counts(name_list))
导致:
但我需要它只打印名字,而不是持续。我该怎么办?我知道我应该使用split函数,但只要我name_list.split()
它返回一个属性错误。
答案 0 :(得分:1)
收集模块中的Counter就是这么做的!您可以使用:
from collections import Counter
# get firstname from name
print(Counter(firstname))
编辑:我将让你弄清楚如何解析名字:)
答案 1 :(得分:1)
你非常接近!你现在在你的功能中所做的只是查看全名,而方向说你应该只看一下名字并看看它出现了多少。你应该拥有的是这样的东西。在查看循环中的每个单词时,创建一个数组,然后说name
并将其设置为word.split()
。然后,就像在下面的代码中一样,检查列表中是否存在name[0]
(名字),如果存在则增加name_dict[name[0]]
。如果没有,请使用name[0]
创建一个新密钥并将其设置为1。
答案 2 :(得分:0)
我会在for
循环的开头创建一个临时变量,它包含拆分名称,如下所示:
for word in name_list:
name = word.split()[0]
if name in name_dict:
name_dict[name] += 1
else:
name_dict[name] = 0
请注意,.split()
函数返回list
,因此要获取名字,您必须获取索引为0
的项目。
希望有所帮助!
答案 3 :(得分:0)
这可以使用http://127.0.0.1:3128在一行中实现。
<div *ngFor="let items of itemList;let i=index">
<div class="xxx"><input type="checkbox" id="chk" name="checker{{i}}" (click)="AddToTextArea(items.Name)" />
{{items.Name}}
</div>
</div>
<textarea class="ttt" id="itemList" name="itemName" rows="5">
{{showselected()}}</textarea> // you can also iterate a list here with ngFor