我正在尝试创建一个字符串列表,其中每个元素看起来像“TEMP1996_U”。年份(1996年,在这种情况下)来自年份列表,类型(在这种情况下为U)来自字符串列表。我希望列表包含年份和类型的每个组合。
要获得一年只有一年的清单,我知道我可以这样做:
years = range(1990,2000)
type_c = ["U", "R", "K", "B"]
temp_list = map('TEMP{0}'.format, years)
我可以用类似的方式将type_c添加到此列表中吗?
答案 0 :(得分:4)
from itertools import product, starmap
years = range(1990, 2000)
type_c = ["U", "R", "K", "B"]
temp_list = list(starmap('TEMP{0}_{1}'.format, product(years, type_c)))
print(temp_list)
输出:
['TEMP1990_U', 'TEMP1990_R', 'TEMP1990_K', 'TEMP1990_B', 'TEMP1991_U', 'TEMP1991_R', 'TEMP1991_K', 'TEMP1991_B',
'TEMP1992_U', 'TEMP1992_R', 'TEMP1992_K', 'TEMP1992_B', 'TEMP1993_U', 'TEMP1993_R', 'TEMP1993_K', 'TEMP1993_B',
'TEMP1994_U', 'TEMP1994_R', 'TEMP1994_K', 'TEMP1994_B', 'TEMP1995_U', 'TEMP1995_R', 'TEMP1995_K', 'TEMP1995_B',
'TEMP1996_U', 'TEMP1996_R', 'TEMP1996_K', 'TEMP1996_B', 'TEMP1997_U', 'TEMP1997_R', 'TEMP1997_K', 'TEMP1997_B',
'TEMP1998_U', 'TEMP1998_R', 'TEMP1998_K', 'TEMP1998_B', 'TEMP1999_U', 'TEMP1999_R', 'TEMP1999_K', 'TEMP1999_B']
答案 1 :(得分:1)
第二种方式(除了Alex Hall的回答)可能如下:
years = range(1990,2000)
type_c = ["U", "R", "K", "B"]
temp_list = []
for i in years:
for j in type_c:
temp_list.append("TEMP%s_%s" % (i,j))
答案 2 :(得分:1)
您可以使用list comprehension执行此任务:
int i = 0;
while(input[i] != 0) {
++i;
}
//i marks the spot
非常明确和直截了当。这就是python真正闪耀的地方:简单的东西完成了!
temp_list = ['TEMP{0}_{1}'.format(y, t) for y in years for t in type_c]