2024-10-03 23:28:35 发布
网友
瞄准
我想在python中生成一个序列list,例如:
python
list
['s1a', 's1b', 's2a', 's2b', ..., 's10a', 's10b']
属性:
方法
为此,我应用了以下代码,使用xrange和综合列表方法:
xrange
问题
是否有更简单的语法来获得结果,例如使用itertools? 类似于this问题?在
itertools
双倍的列表理解可以实现以下目的:
['s'+str(x)+y for x in range(1,11) for y in 'ab']
itertools.product可能是你的朋友:
itertools.product
all_combos = ["".join(map(str, x)) for x in itertools.product(p, n, s)]
退货:
编辑:作为一条直线:
all_combos = ["".join(map(str,x)) for x in itertools.product(['s'], range(1, 11), ['a', 'b'])]
编辑2:正如James的回答中所指出的,我们可以将product调用中列出的字符串元素更改为仅字符串,itertools仍然可以迭代它们,从每个字符串中选择字符:
product
all_combos = ["".join(map(str,x)) for x in itertools.product('s', range(1, 11), 'ab')]
怎么样:
def func(prefix,suffixes,size): k = len(suffixes) return [prefix+str(n/k+1)+suffixes[n%k] for n in range(size*k)] # usage example: print func('s',['a','b'],10)
这样你就可以随意替换后缀了。在
当然,每个后缀都可以是任意长的。在
双倍的列表理解可以实现以下目的:
itertools.product
可能是你的朋友:退货:
^{pr2}$编辑:作为一条直线:
编辑2:正如James的回答中所指出的,我们可以将
product
调用中列出的字符串元素更改为仅字符串,itertools
仍然可以迭代它们,从每个字符串中选择字符:怎么样:
这样你就可以随意替换后缀了。在
当然,每个后缀都可以是任意长的。在
相关问题 更多 >
编程相关推荐