首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将值从一个列表转移到另一个列表?

如何将值从一个列表转移到另一个列表?
EN

Stack Overflow用户
提问于 2013-04-11 02:39:28
回答 4查看 1.8K关注 0票数 1

假设你有3个列表

代码语言:javascript
运行
复制
List1 = [['_', '_', '_'], ['_', '_', '_'], ['_','_','_']]
List2 = [['Test', 'Word', 'Sudo'], ['Fu', 'Lu', 'Shou'], ['Ham', 'Spam', 'Eggs']]
List3 = [3, 5, 7,]

使用List3中的值,我希望将'Fu'List2[0][2]转换为List1[0][2],因为List3的第一个值是3,这意味着从List2中提取第三个值(从0开始计算,它是list2),并将其放在与List1相同的位置

使用List3中的其他值,最终结果应该是:

代码语言:javascript
运行
复制
List1 = [['_', '_', 'Fu'], ['_', 'Shou', '_'], ['Spam','_','_']]

我已经试了几个小时了,但就是不能让它工作!

这是怎么做的?

EN

Stack Overflow用户

发布于 2013-04-11 03:00:11

代码语言:javascript
运行
复制
# If you must have original data as lists of lists:
def flat(lst):
    ret = []
    for x in lst:
        if hasattr(x, '__iter__'):
            ret += flat(x)
        else:
            ret.append(x)
    return ret

List1 = [['_', '_', '_'], ['_', '_', '_'], ['_','_','_']]
List2 = [['Test', 'Word', 'Sudo'], ['Fu', 'Lu', 'Shou'], ['Ham', 'Spam', 'Eggs']]
List3 = [3, 5, 7,]

lst1 = flat(List1)
lst2 = flat(List2)

# Now given flat lists, you can just do this:
def splitby(x, n=3):
    i = iter(x)
    while True:
        yield [next(i) for _ in range(n)]

for i in List3:
    lst1[i] = lst2[i]

print list(splitby(lst1))
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15933807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档