Skip to main content
 首页 » 编程设计

Python 字典问题。如何对相似的字符串进行分组

2025年05月04日31fff_TT

for i in names: 
    dict[i] = {'firstname': name[i]['firstname'], 
               'lastname': name[i]['lastname']} 
    print dict[0]['firstname'] # John 
    print dict[0]['lastname'] # Doe 
 
    # group similar lastnames, along with their firstnames 
    # ... 
return render_to_response('index.html', dict) 

我想对以相似姓氏结尾的名字进行分组。 例如,输出应该是:

<html> 
  <body> 
    <h1> Doe </h1> 
    <p> John, Jason, Peter </p> 
 
    <h1> Avery </h1> 
    <p> Kelly, Brittany </p> 
  </body> 
</html> 

“h1”标签应该包含姓氏,“p”标签应该包含名字。

我应该怎么做?

请您参考如下方法:

你的意思是这样的:

import collections 
 
data = [ 
    {'firstname': 'John', 'lastname': 'Smith'},  
    {'firstname': 'Samantha', 'lastname': 'Smith'},  
    {'firstname': 'shawn', 'lastname': 'Spencer'}, 
] 
 
new_data = collections.defaultdict(list) 
 
for d in data: 
    new_data[d['lastname']].append(d['firstname']) 
 
print new_data 

输出:

defaultdict(<type 'list'>, {'Smith': ['John', 'Samantha'], 'Spencer': ['shawn']}) 

在你的模板中做:

{% for lastname, firstname in data.items %} 
    <h1> {{ lastname }} </h1> 
    <p> {{ firstname|join:", " }} </p> 
{% endfor %} 

输出:

<h1> Smith </h1> 
<p> John, Samantha </p> 
 
<h1> Spencer </h1> 
<p> shawn </p>