对于python中的列表,我如何实现以下功能?

时间:2018-11-28 11:02:50

标签: python list

如果我有

[[[A1]],[[A2]],...] 

[[[B1]],[[B2]],...], 

,并且在操作后预期结果为

[[[A1,B1]],[[A2,B2]],...]

我尝试使用numpy将其转换为narray,但效果不佳

3 个答案:

答案 0 :(得分:0)

您不必使用numpy来执行此操作。您可以通过列表理解和zip函数来做到这一点:

listA = [[['A1']],[['A2']],[['A3']]]
listB = [[['B1']],[['B2']],[['B3']]]

output = [[elemA[0] + elemB[0]] for elemA, elemB in zip(listA,listB)]
print(output)

输出:

[[['A1', 'B1']], [['A2', 'B2']], [['A3', 'B3']]]

或者您可以将map函数与zip一起使用:

output = list(map(lambda elem: elem[0] + elem[1], zip(listA,listB)))

答案 1 :(得分:0)

您可以尝试这样:

l1 = [[['A1']], [['A2']], [['A3']]]
l2 = [[['B1']], [['B2']], [['B3']]]

new = [[sum(i+j, [])] for i, j in zip(l1, l2)]
print(new)

答案 2 :(得分:0)

您可以将本机python函数用作:

def generate_list(letter='A', count=10):
    result = []
    for i in range(count):
        item = "{}{}".format(letter, i)
        result.append([[item]])
    return result


first_list = generate_list()
second_list = generate_list(letter='B')

result = []
for first, second in zip(first_list, second_list):
    result.append([[first[0][0], second[0][0]]])

def generate_list(letter='A', count=10):
    result = []
    for i in range(count):
        item = "{}{}".format(letter, i)
        result.append([[item]])
    return result


first_list = generate_list()
second_list = generate_list(letter='B')

result = list(map(lambda first, second:
                  [[first[0][0], second[0][0]]],
                  first_list, second_list))