gpt4 book ai didi

python - 从列表值中获取所有组合

转载 作者:行者123 更新时间:2023-11-28 21:02:57 25 4
gpt4 key购买 nike

我正在使用 python 2.7 并且我有这个列表:

new_out_filename = ['OFF_B8', 0, 'ON_B8', 1, 'ON_B16', 4, 'OFF_B0', 7]

我想获取字符串的所有组合,如 OFF_B8_vs_ON_B8OFF_B8_vs_ON_B16OFF_B8_vs_OFf_B0ON_B8_vs_ON_16,等

有没有简单的方法可以实现?

我试过类似的东西:

for k in range(0, len(new_out_filename), 2):
combination = new_out_filename[k]+'_vs_'+new_out_filename[k+2]
print combination

但是我的列表超出了索引,而且我也没有得到合适的结果。

你能帮帮我吗?

最佳答案

只需在切片列表上使用组合即可忽略数字:

import itertools
new_out_filename = ['OFF_B8', 0, 'ON_B8', 1, 'ON_B16', 4, 'OFF_B0', 7]
for a,b in itertools.combinations(new_out_filename[::2],2):
print("{}_vs_{}".format(a,b))

结果:

OFF_B8_vs_ON_B8
OFF_B8_vs_ON_B16
OFF_B8_vs_OFF_B0
ON_B8_vs_ON_B16
ON_B8_vs_OFF_B0
ON_B16_vs_OFF_B0

或理解:

result = ["{}_vs_{}".format(*c) for c in itertools.combinations(new_out_filename[::2],2)]

结果:

['OFF_B8_vs_ON_B8', 'OFF_B8_vs_ON_B16', 'OFF_B8_vs_OFF_B0', 'ON_B8_vs_ON_B16', 'ON_B8_vs_OFF_B0', 'ON_B16_vs_OFF_B0']

关于python - 从列表值中获取所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com