首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环并合并以创建新列表。

循环并合并以创建新列表。
EN

Stack Overflow用户
提问于 2019-03-21 08:37:06
回答 4查看 60关注 0票数 2

做以下事情最有效的方法是什么?

代码语言:javascript
运行
复制
A = ["A","B","C"]
B = [range(19,21)]

清单的结果:

代码语言:javascript
运行
复制
C = ["A19", "B19", "C19", "A20", "B20", "C20"] 

非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-03-21 08:39:08

使用列表理解:

代码语言:javascript
运行
复制
A = ["A","B","C"]
B = range(19,21)
print([x+str(y) for y in B for x in A])

或者如果版本高于Python3.6:

代码语言:javascript
运行
复制
print([f"{x}{y}" for y in B for x in A])

输出:

代码语言:javascript
运行
复制
['A19', 'B19', 'C19', 'A20', 'B20', 'C20']

编辑:

用这个:

代码语言:javascript
运行
复制
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)
票数 3
EN

Stack Overflow用户

发布于 2019-03-21 08:44:26

还可以使用itertools.product

代码语言:javascript
运行
复制
from itertools import product

A = ["A","B","C"]
C = [a + str(n) for n, a in product(range(19, 21), A)]

请注意,将字符串(a)和数字n格式化为单个字符串有不同的方式:

代码语言:javascript
运行
复制
a + str(n)
"{}{}".format(a, n)
f"{a}{n}"  # for python >= 3.6
票数 5
EN

Stack Overflow用户

发布于 2019-03-21 10:03:15

您可以使用以下listcomp:

代码语言:javascript
运行
复制
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']

代码语言:javascript
运行
复制
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()

代码语言:javascript
运行
复制
list(range(19, 21))
# [19, 20]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55276461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档