[英]replacing one of the sublist element with new element using .remove() and .append() in python
subjects = ["Algorithms", "Software Design", "Poetry", "Electronics"]
grades = ["98", "88", "85", "90"]
print("Course ", " Score")
gradebook = zip(subjects, grades)
for subject, grade in gradebook: #for creating a table
print(subject, '\t', grade)
print('\n')
grade_book = list(gradebook)
list(grade_book[2]).remove('85')
list(grade_book[2]).append('Pass')
在这里,我有一个子列表为 ['Poetry', '85'],我必须使用 remove() 删除等级(85),并使用.append() 将新的“通过”值添加到子列表中85位于。 我在最后两行尝试过,但没有成功。
zip 返回一个元组列表。 创建元组后,您无法更改其值。
您可以将元组列表转换为列表列表,然后编辑
grade_book = [list(elem) for elem in gradebook]
grade_book[2][1] = 'Pass'
如果您需要转换回元组列表,您可以这样做
grade_book = [(x,y) for [x,y] in grade_book]
字典在这里也可能是一个不错的选择。
zip(subjects, grades)
返回一个迭代器。 通过遍历gradebook
,您已经“用尽”了迭代器中的所有值。 这就是为什么grade_book = list(gradebook)
返回一个空列表,从而使以下操作无效。
我还建议在这里使用字典,如下所示:
subjects = ["Algorithms", "Software Design", "Poetry", "Electronics"]
grades = ["98", "88", "85", "90"]
gradebook = dict(zip(subjects, grades))
print("Course ", " Score")
for subject, grade in gradebook.items(): # for creating a table
print(subject, '\t', grade)
print()
然后您可以轻松添加新元素并使用.pop() 删除元素:
gradebook.pop('Poetry')
gradebook["Pass"] = "85"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.