我正在尝试打印列表列表的第一个列表:
以下是我的尝试:
codes
)codes_chunks
中的第一个列表李>########## define a split function ########
def chunks(lst, n):
"""Yield successive n-sized chunks from lst."""
for i in range(0, len(lst), n):
yield lst[i:i + n]
########## splitting the list #############
countries = ['Spain', 'Portugal']
codes=['A1', 'A2', 'A3', 'A4', 'A6', 'A7']
codes_chunks = list(chunks(codes, 2))
###########################################
# tried to print just for the first list #
for country in countries:
for chunks_sample in codes_chunks[0]:
for code in chunks_sample:
print(code+'-'+country)
###########################################
控制台输出:
# A-Spain
# 1-Spain
# A-Spain
# 2-Spain
# A-Portugal
# 1-Portugal
# A-Portugal
# 2-Portugal
预期产出:
# A1-Spain
# A2-Spain
# A1-Portugal
# A2-Portugal
我错过了什么
提前谢谢
这条线。它不应该是
code_chunks
而不是code_chunks[0]
吗?或codes_chunks[0:2]
更改后的输出:
用
codes_chunks[0:2]
codes_chunks[0:1]
TL;博士:
在
codes_chunks[0]
上循环已经提供了“代码”A1
和A2
,因此最里面的循环只是太深了一层逐步:
因此,二阶循环中的
codes_chunks[0]
仅为['A1', 'A2']
泛化到更多的块
如果需要将循环泛化到所有
codes_chunks
,则有两个选项:选项1:将另一个for循环环绕其他所有内容,以交替输出中的国家:
选项2:在最外层环路内添加相同环路,以逐个完成国家/地区:
如果打印
codes_chunks
:不是你选择的
code_cunks[0]
是['A1','A2']如果您现在对它进行迭代,您将得到
A1
,这是必需的,但是您再次进行迭代,结果是A
&1
。因此,您需要删除额外的循环所需输出的正确代码:
相关问题 更多 >
编程相关推荐