我正在尝试生成一个将另外两个列表的元素组合在一起的列表,一个是值,一个不是。
我尝试使用两个单独的列表,并使用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]
答案 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 ]