社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python嵌套for循环当外部循环的索引等于内部循环的长度时,可以重新开始

Aliko Aliko • 3 年前 • 1203 次点击  

我有

A = ['A','B','C','D','E','F','G','H']
B= ['a','b']

想要反复浏览列表以获得

C = ['Aa','Bb','Ca','Db','Ea','Fb','Ga','Hb']

我怎样才能用python来进行呢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133583
 
1203 次点击  
文章 [ 5 ]  |  最新文章 3 年前
Dharman Neenhila
Reply   •   1 楼
Dharman Neenhila    3 年前
A = [1, 2, 3, 4, 5, 6, 7, 8]
B = ["a", "b", "c", "d", "f", "g", "h", "q"]
C = []
i = 0
while i < len(A):
    for j in B:
        C.append("{}{}".format(A[i], j))   
    i = i + 1
        

print(C)

你可以不使用任何模块来尝试。

你可以指定你的数组,不管怎样都可以。我就是这样测试的。

Kelly Bundy
Reply   •   2 楼
Kelly Bundy    3 年前

更多变化:

from itertools import cycle
from operator import add

A = ['A','B','C','D','E','F','G','H']
B = ['a','b']
E = ['Aa','Bb','Ca','Db','Ea','Fb','Ga','Hb']

C = list(map(add, A, cycle(B)))
print(C == E)

C = [a + B[i%2] for i, a in enumerate(A)]
print(C == E)

C = list(map(''.join, zip(A, cycle(B))))
print(C == E)

C = list(map('{}{}'.format, A, cycle(B)))
print(C == E)
Xiidref
Reply   •   3 楼
Xiidref    3 年前

可以通过使用A列表中的索引(映射到B列表中的元素数)和模运算来实现这一点( % ) :

A = [1,2,3,4,5,6,7,8]
B= ['a','b']
C = []

for i in range(len(A)):
    C.append(f"{A[i]}{B[i%2]}")
quamrana
Reply   •   4 楼
quamrana    3 年前

你可以用 zip() cycle() :

from itertools import cycle

A = ['A','B','C','D','E','F','G','H']
B = ['a', 'b']

C = [a + b for a,b in zip(A, cycle(B))]
print(C)

按要求输出。

Titouan L
Reply   •   5 楼
Titouan L    3 年前

您可以使用列表:

a = ['A','B','C','D','E','F','G','H']
b = ['a','b']

c = [a[i] + b[i%2] for i in range(len(a))]

# ['Aa', 'Bb', 'Ca', 'Db', 'Ea', 'Fb', 'Ga', 'Hb']