簡體   English   中英

遍歷兩個列表並組合項目

[英]Iterate over two lists and combining items

我想遍歷並合並兩個列表中的項目。 但它必須從列表1中的項目1開始,然后迭代並與列表2中的所有項目合並。

partner_paths = ["/partner/path/1", "/partner/path/2", "/partner/path/3"]
scr_dirs = ["/dir1", "/dir2", "/dir3"]

for p_path, s_dir in zip(partner_paths, scr_dirs):
    fpath = p_path + s_dir
    print fpath

我想要的是:

“ / partner / path / 1 / dir1”“ / partner / path / 1 / dir2”“ / partner / path / 1 / dir3”

“ /伙伴/路徑/ 2 / dir1”“ /伙伴/路徑/ 2 / dir2”“ /伙伴/路徑/ 2 / dir3”

“ /伙伴/路徑/ 3 / dir1”“ /伙伴/路徑/ 3 / dir2”“ /伙伴/路徑/ 3 / dir3”

如果需要列表中的結果,可以將itertools.product與列表理解一起使用:

from itertools import product
[d + f for d, f in product(partner_paths, scr_dirs)]

#['/partner/path/1/dir1',
# '/partner/path/1/dir2',
# '/partner/path/1/dir3',
# '/partner/path/2/dir1',
# '/partner/path/2/dir2',
# '/partner/path/2/dir3',
# '/partner/path/3/dir1',
# '/partner/path/3/dir2',
# '/partner/path/3/dir3']

或如@vaultah所建議的,這也應該工作:

[p + d for p in partner_paths for d in scr_dirs]

Double for循環是不可能的嗎?

for p_path in partner_paths:
    for s_dir in scr_dirs:
       fpath = p_path + s_dir
       print fpath

如果您想要2D輸出,此代碼也應該工作:

final_output = []
for p_path in partner_paths:
  paths = []
  for s_dir in scr_dirs:
    fpath = p_path + s_dir
    paths.append(fpath)
  output_list.append(paths)

print (final_output)
partner_paths = ["/partner/path/1", "/partner/path/2", "/partner/path/3"]
scr_dirs = ["/dir1", "/dir2", "/dir3"]
fpath = []
for p_path in partner_paths:
    for s_dir in scr_dirs:
        fpath.append(p_path + s_dir)

print(fpath)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM