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

Jas*_*ald 1 python list pyspark

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

student_class = student.map(lambda x:x).zip(class)
Run Code Online (Sandbox Code Playgroud)

现在我想将学生分数添加到上述列表列表的每个元素中,以便输出变为:

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

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

Dee*_*ace 5

由于您有liststuple并且tuples 是不可变的,因此您需要通过将现有元组与单元素元组(由 创建(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)]
Run Code Online (Sandbox Code Playgroud)

另一种但不知何故不太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)]
Run Code Online (Sandbox Code Playgroud)