我有一个类服务类型的Python对象列表。我想根据此类的数据成员之一对该列表进行分组
class service:
def __init__(self, tasknum, candidatenum, features, cost):
self.tasknum = tasknum
self.candidatenum = candidatenum
self.features = features
self.cost = cost
s11 = service(1,1, features = [1], cost = 30)
s12 = service(1,2, features = [1], cost = 50)
s13 = service(1,3, features = [1], cost = 70)
s14 = service(1,4, features = [1], cost = 200)
s15 = service(1,5, features = [2], cost = 20)
lstservice = []
lst.append(s11)
lst.append(s12)
lst.append(s13)
lst.append(s14)
lst.append(s15)
我想通过列表功能对列表lst
进行分组,也就是说,在上文中,s11,s12,s13和s14将组成一个组。将对列表要素进行分组,以使一组对象中的所有对象都具有完全相同的要素值,即,列表特性对于组中的所有对象都相同。我该如何进行?
答案 0 :(得分:2)
Scikit学习或模糊聚类算法在这里非常过头,在这里您要确定一个明确的列表。
您可以创建一个字典,将要素存储为键,将服务列表存储为值。请注意,由于列表是可变的,因此在将其用作键之前,您需要将它们转换为元组(或者,由于功能似乎不可变,因此始终使用元组)。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
</head>
<body>
<script>
var data = [
[
"Tiger Nixon",
"System Architect",
"Edinburgh"
],
[
"Garrett Winters",
"Director",
"Edinburgh"
]
]
$(document).ready( function () {
$('#table_id').DataTable( {
data: data
} );
} );
</script>
<table id="table_id" class="display">
<thead>
<tr>
<th>Name</th>
<th>Job</th>
<th>City</th>
</tr>
</thead>
</table>
</body>
</html>