如何生成如下字符串(或Pandas系列):
a1,a2,a3,a4,...,a19
以下作品,但我想知道更简短的方法
my_str = ""
for i in range(1, 20):
comma = ',' if i!= 19 else ''
my_str += "d" + str(i) + comma
答案 0 :(得分:6)
您可以使用列表推导来生成单个元素(使用字符串连接或str.format
),然后使用join生成的列表在分隔符字符串(逗号)上:
>>> ['a{}'.format(i) for i in range(1, 20)]
['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'a10', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a17', 'a18', 'a19']
>>> ','.join(['a{}'.format(i) for i in range(1, 20)])
'a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19'
答案 1 :(得分:1)
怎么样:
s = ','.join(["a%d" % i for i in range(1,20)])
print(s)
输出:
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19
(这使用了一个生成器表达式,它比加入列表推导更有效 - 只是稍微用这么短的列表,但是)现在使用列表推导!有关为什么列表推导更适合join
的生成器表达式,请参阅注释。