gpt4 book ai didi

python - 用多个元素替换列表中的一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:18 25 4
gpt4 key购买 nike

我正在尝试修改包含两个列表的列表。对于两个内部列表中的每一个,我执行一些操作并将它们“拆分”到新列表中。
这是我正在尝试做的一个简单示例:

[['a', 'b'], ['c', 'd']]  -->  [['a'], ['b'], ['c', 'd']]

目前,我的算法将 ['a', 'b'] 传递给一个函数,该函数确定是否应将其拆分为 [['a'], ['b' ]](例如,基于它们的相关性)。该函数返回 [['a'], ['b']] 告诉我 ['a', 'b'] 应该拆分,或者返回 ['a', 'b'](原始列表)表示不应拆分。

目前我有这样的东西:

blist = [['a', 'b'], ['c', 'd']]   #big list
slist = [['a'], ['b']] #small list returned by function

nlist = [items for i in xrange(len(blist)) for items in (slist if i==0 else blist[i])]

这会产生 [['a'], ['b'], 'c', 'd'] 而不是所需的输出 [['a'], [ 'b'], ['c', 'd']] 不会改变原始 blist 中的第二个列表。我明白为什么会这样——在这种情况下,我的第二个循环也应用于 blist[1],但我不确定如何解决它,因为我不完全理解列表理解。

首选“pythonic”解决方案。如有任何反馈,我们将不胜感激,谢谢!

编辑:如标题所示,我正在尝试用 ['a']“替换”['a', 'b'], [‘b’]。所以我希望“位置”相同,让 ['a'], ['b'] 出现在 ['c', 'd'] 之前的原始列表中

结果感谢 Christian、Paul 和 schwobaseggl 提供的解决方案!他们都工作:)

最佳答案

尝试

...  else [blist[i]])]

创建列表列表。

关于python - 用多个元素替换列表中的一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42277961/

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