在python中生成一个数字序列和交替字符串

set*_*ler 0 python list

目标

我想作为生成序列listpython,如:

['s1a', 's1b', 's2a', 's2b', ..., 's10a', 's10b']
Run Code Online (Sandbox Code Playgroud)

属性:

  • items包含单个前缀
  • 数字按数字排序
  • 后缀是每个号码交替

途径

为此,我使用了一个xrange全面的列表方法来应用以下代码:

# prefix
p = 's'
# suffix
s = ['a', 'b']
# numbers
n = [ i + 1 for i in list(xrange(10))]
# result
[ p + str(i) + j for i, j in zip(sorted(n * len(s)), s * len(n)) ]
Run Code Online (Sandbox Code Playgroud)

是否有更简单的语法来获得结果,例如使用itertools?与问题类似?

Jam*_*mes 5

双重列表理解可以实现这一点:

['s'+str(x)+y for x in range(1,11) for y in 'ab']
Run Code Online (Sandbox Code Playgroud)