如何解决在python中使用.remove()和.append()用新元素替换子列表元素之一
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() 并使用 .append() 将一个新的“Pass”值添加到子列表中删除等级(85),其中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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。