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

如何批量将两个等长列表的对应元素按指定格式拼接

如何批量将两个等长列表的对应元素按指定格式拼接

嘿,这个问题其实很好解决!你不用再手动写u[0]:n[0]这种重复代码了,Python里的zip()函数就是专门干这种对应配对的活儿的,刚好能完美匹配你的需求——毕竟你已经确认两个列表长度始终一致。

最简洁的实现方法:列表推导式 + zip

直接用zip(u, n)把两个列表里的对应元素一一配对,再通过列表推导式批量拼接成你要的格式:

# 替换你原来的k.append(...)这行代码
k = [f"{user_id}:{username}" for user_id, username in zip(u, n)]

原理说明:

  • zip(u, n)会把u和n中位置相同的元素打包成元组,比如(u[0], n[0])、(u[1], n[1])……直到遍历完所有元素。
  • 列表推导式会逐个遍历这些元组,把每个元组里的ID和用户名按{ID}:{用户名}的格式拼接成字符串,最终生成完整的k列表,不管你的列表有几千甚至几万个元素都能一次性处理。

如果需要直接写入文件(大规模数据更高效)

要是你最终想把结果保存到文件里,还可以用生成器表达式配合join(),这样不用先生成完整列表,内存占用更低:

# 生成所有拼接后的字符串,用换行符分隔
result_str = '\n'.join(f"{user_id}:{username}" for user_id, username in zip(u, n))

# 写入文件
with open("output.txt", "w") as f:
    f.write(result_str)

结合你原代码的完整优化版本

把这个方法整合到你原来的代码里,完整代码大概是这样:

import re
import requests

t = []
u = []
n = []
exclude_banned = True

with open("u.txt", "r") as f:
    # 读取前100行(你也可以改成读取全部:f.readlines())
    h = f.readlines()[0:100]
    for sub in h:
        # 去掉换行符
        t.append(re.sub('\n', '', sub))

# 请求Roblox API
r = requests.post('https://users.roblox.com/v1/usernames/users', 
                  json={'usernames': t, 'excludeBannedUsers': exclude_banned})
y = r.json()['data']

# 提取ID和用户名
u.extend([f['id'] for f in y])
n.extend([f['name'] for f in y])

# 批量拼接成目标格式
k = [f"{user_id}:{username}" for user_id, username in zip(u, n)]

print(k)

这样不管你的列表有多长,都能轻松完成批量拼接,再也不用手动写一个个索引啦!

备注:内容来源于stack exchange,提问作者Notepad noobb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:42:34