You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何映射长度不同的两个列表以得到指定输出?

Python不等长列表映射解决方案

基础映射实现

直接用标准库itertools下的cycle方法循环短列表元素,和长列表配对即可实现需求,示例代码如下:

from itertools import cycle

name = ["Joe Harris", "Susie Carmike"]
method = ["Lab"]

# 完成两个列表的映射
mapping_res = list(zip(name, cycle(method)))

# 按要求格式打印
print(f"{'name':<15} method")
for n, m in mapping_res:
    print(f"{n:<15} {m}")

更优的不等长映射方案

如果后续需要对映射结果做结构化处理,或者需要适配更复杂的不等长匹配规则,推荐用pandas DataFrame实现,无需手动处理循环逻辑,适配性更强:

import pandas as pd

name = ["Joe Harris", "Susie Carmike"]
method = ["Lab"]

# 自动补全短列的元素到和长列长度一致
df = pd.DataFrame({
    "name": name,
    "method": method * len(name)
})

# 直接输出规整格式的结果
print(df.to_string(index=False))

如果短列表长度大于1,需要按顺序循环补全到和长列表一致,搭配numpy的tile方法处理更简洁:

import numpy as np
import pandas as pd

name = ["Joe Harris", "Susie Carmike", "Zhang San", "Li Si"]
method = ["Lab", "Online"]

# 循环补全短列表到和长列表长度相同
method_padded = np.tile(method, len(name)//len(method) + 1)[:len(name)]
df = pd.DataFrame({"name": name, "method": method_padded})
print(df.to_string(index=False))

内容的提问来源于stack exchange,提问作者Kadesia Durham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:15:00