Skip to main content
 首页 » 编程设计

python之将元素添加到python pyspark中的列表列表

2025年05月04日39傻小

我有一个包含学生数据结构的列表列表 - [('100', 'class 1'), ('110', 'class 2'), ('1030', 'class 2' ),.....]。我使用这个命令得到的这个结构:

student_class = student.map(lambda x:x).zip(class) 

现在我想将学生分数添加到上面列表列表的每个元素中,这样输出就变成了:

[('100', 'class 1',score1), ('110', 'class 2',score2), ('1030', 'class 2',score3),.... .]

学生的分数显示在名为score 的列表中。如何将分数添加到上面的 student_class 列表中,使其成为 student_classScore 列表?

请您参考如下方法:

因为你有一个 list 的 tuple 并且 tuple 是不可变的,你需要通过集中现有的元组来创建一个新的元组元组与单元素元组(由 (score,) 创建),然后将新创建的元组附加到新列表。

l = [('100', 'class 1'), ('110', 'class 2'), ('1030', 'class 2')] 
scores = [1, 2, 3] 
new_list = [] 
for tup, score in zip(l, scores): 
    new_list.append(tup + (score,)) 
 
print new_list 
>> [('100', 'class 1', 1), ('110', 'class 2', 2), ('1030', 'class 2', 3)] 

另一种但不那么pythonic但概念相同的方式:

for index, tup in enumerate(l): 
    l[index] = tup + (scores[index],) 
print l 
>> [('100', 'class 1', 1), ('110', 'class 2', 2), ('1030', 'class 2', 3)]