创建具有指定长度的列表并组合其他列表

时间:2019-04-16 16:06:00

标签: python

我正在尝试生成一个将另外两个列表的元素组合在一起的列表,一个是值,一个不是。

我尝试使用两个单独的列表,并使用join函数和append函数在特定阶段将两个元素组合在一起。 为了匹配list d的长度来列出a,我使用了while循环作为计数器。

a=7*[1]

b=[1,2,3,4,5]

c=['a','b','c']

d=[]

我想要达到的结果是: 列表d变为列表a的长度 &是列表b和列表c的组合

d=[1a,1b,1c,2a,2b,2c,3a]

3 个答案:

答案 0 :(得分:0)

现在可以想到一个天真的解决方案

def create(bk, ck, len_required):
    dk = []
    for bitem in bk:
        for citem in ck:
            dk.append(str(bitem) + citem)
            if len(dk) == len_required:
                return dk


len_required = len(a)
b = [1, 2, 3, 4, 5]
c = ['a', 'b', 'c']
d = create(b, c, len_required)

答案 1 :(得分:0)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Invoice system</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="main.css">
    <link href="https://fonts.googleapis.com/css?family=Cabin" rel="stylesheet"> 
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
    <script src='https://code.jquery.com/jquery-2.1.4.js'></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</head>
<body>

此操作将i从0迭代到len(a),并在输出中连接b [int(i / len(c))%len(b)]和c [i%len(c)]。

答案 2 :(得分:0)

您可以通过列表理解来做到这一点:

d = [str(v)+L for v in b*len(a) for L in c][:len(a)]

或者,如果允许使用itertools:

from itertools import cycle

cycleA = cycle(str(v)+L for v in b for L in c)
d = [ next(cycleA) for _ in a ]