如何合并在蟒蛇不同长度的2所列出

时间:2019-07-25 21:48:07

标签: python python-3.x

在Python 3中,我正在查找合并2个不同长度的列表。我在这里经历了很多其他话题,但是似乎都没有解决我的问题。

我有:

(FIRST_PAGE_NUMBER until numberOfPages)
    .asSequence()
    .map { findByPage(query, pageSize, it) }
    .takeWhileEndInclusive { it.size != 5 }
    .flatten()
    .toList()

谢谢!

更新-感谢ndclt为上述问题提供的解决方案。

我的真正的问题是:

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

Output = [['Aab', 'Aac', 'Aad', 'Aae'],['Bab','Bac','Bad','Bae'],['Cab','Cac','Cad','Cae']]

5 个答案:

答案 0 :(得分:4)

这里是单线:

它使用for循环理解功能创建嵌套列表。

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

out = [[an + bn for bn in List2] for an in List1]
print(out)
# >>> [['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

答案 1 :(得分:1)

尝试一下:

list1 = ['A','B','C']
list2 = ['ab', 'ac', 'ad', 'ae']
lst = []
finaly_lst = []
for i in list1:
    for j in list2:
        lst.append(i+j)
    finaly_lst.append(lst)
    lst = []
print(finaly_lst)

输出:

[['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

答案 2 :(得分:0)

不太好,但是它可以工作:

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

final = []
for one in List1:
    intermediate = []
    for two in List2:
        intermediate.append(one+two)
    final.append(intermediate)

print(final)
[['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

如果不是必须嵌套的:

from itertools import product
List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

final = [one+two for one, two in product(List1, List2)]
print(final)
['Aab', 'Aac', 'Aad', 'Aae', 'Bab', 'Bac', 'Bad', 'Bae', 'Cab', 'Cac', 'Cad', 'Cae']

答案 3 :(得分:0)

Result = [];
for i in List1:
    p = [];
    for j in List2:
        p.append( ''.join( [i,j] ) );
    Result.append(p);

试穿一个尺码。这两个循环的总计数为len(List1)*len(List2)。但是循环 p = [] 内的列表声明对于List1的每次迭代都为空。 ''.join(list)用字符串将列表中的元素连接在一起。它是string类的一部分。

通过在解释器中键入dir(module)dir(class),可以找到模块/类的所有功能。

答案 4 :(得分:0)

好吧,我假设您的两个列表长度都是可分割的,并且在提供数据时给出整数。

from operator import add

List1 = ['A','B','C']
List2 = ['a','b','c','d','e','f','g','h','i']

List = []

for i in List1:
    List.append(i*(len(List2)//len(List1)))

List1 = []

for i in List:
    for j in i:
    List1.append(j)

final_list = list(map(add, List1, List2))

#Output 
#['Aa', 'Ab', 'Ac', 'Bd', 'Be', 'Bf', 'Cg', 'Ch', 'Ci']