gpt4 book ai didi

Python:遍历嵌套列表列表中的每个项目并替换特定项目

转载 作者:太空狗 更新时间:2023-10-29 18:27:48 25 4
gpt4 key购买 nike

我是 python 初学者。我想知道是否有任何内置函数或其他方式,以便我可以在 python 2.7 中实现以下功能:

查找列表和子列表中的所有-letter并替换为['not',letter]

例如:找到下面列表中所有以 - 开头的项目,并用 ['not',letter] 替换它们

Input : ['and', ['or', '-S', 'Q'], ['or', '-S', 'R'], ['or', ['or', '-Q', '-R'], '-S']]
Output : ['and', ['or', ['not','S'], 'Q'], ['or', ['not','S'], 'R'], ['or', ['or', ['not','Q'], ['not','R']], ['not','S']]]

任何人都可以建议如何在 python 中执行此操作。谢谢

最佳答案

尝试一些递归:

def change(lol):
for index,item in enumerate(lol):
if isinstance(item, list):
change(item)
elif item.startswith('-'):
lol[index] = ['not',item.split('-')[1]]
return lol

在行动中:

In [24]: change(['and', ['or', '-S', 'Q'], ['or', '-S', 'R'], ['or', ['or', '-Q', '-R'], '-S']])
Out[24]:
['and',
['or', ['not', 'S'], 'Q'],
['or', ['not', 'S'], 'R'],
['or', ['or', ['not', 'Q'], ['not', 'R']], ['not', 'S']]]

关于Python:遍历嵌套列表列表中的每个项目并替换特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29159657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com