做以下事情最有效的方法是什么?
A = ["A","B","C"]
B = [range(19,21)]清单的结果:
C = ["A19", "B19", "C19", "A20", "B20", "C20"] 非常感谢!
发布于 2019-03-21 08:39:08
使用列表理解:
A = ["A","B","C"]
B = range(19,21)
print([x+str(y) for y in B for x in A])或者如果版本高于Python3.6:
print([f"{x}{y}" for y in B for x in A])输出:
['A19', 'B19', 'C19', 'A20', 'B20', 'C20']编辑:
用这个:
A = ["X","Y","Z"]
B = range(19,21)
C = [x+str(y) for y in B for x in A]
print(C)
curveexpression = ""
for zoo in "Animal":
for month in C:
arrival += "[%s,%s];" % (zoo, month)
print(arrival)发布于 2019-03-21 08:44:26
还可以使用itertools.product:
from itertools import product
A = ["A","B","C"]
C = [a + str(n) for n, a in product(range(19, 21), A)]请注意,将字符串(a)和数字n格式化为单个字符串有不同的方式:
a + str(n)
"{}{}".format(a, n)
f"{a}{n}" # for python >= 3.6发布于 2019-03-21 10:03:15
您可以使用以下listcomp:
from itertools import product
A = ["A","B","C"]
B = range(19,21)
[i + j for i, j in product(A, map(str, B))]
# ['A19', 'A20', 'B19', 'B20', 'C19', 'C20']或
from itertools import product
from operator import concat
[concat(*i) for i in product(A, map(str, B))]
# ['A19', 'A20', 'B19', 'B20', 'C19', 'C20']如果要从某个范围生成列表,请使用函数list()
list(range(19, 21))
# [19, 20]https://stackoverflow.com/questions/55276461
复制相似问题