Python 在范围创建中添加字符串

Python 在范围创建中添加字符串,python,Python,我想创建一行,以便将其用作数据帧的标题 格式是这样的 [a0, a1, a2] 或者没有逗号,我不确定它需要将什么粘贴到数据帧中作为侦听器 我尝试的是: "a" + str(range(0,3)) 但结果是: a[0, 1, 2] 使用 输出 ["a0","a1","a2"] 您可以使用列表理解: ["a" + str(i) for i in range(0,3)] 将列表理解与格式一起使用: c = ['a{}'.format(x) for x in range(3)] print

我想创建一行,以便将其用作数据帧的标题

格式是这样的

[a0, a1, a2]
或者没有逗号,我不确定它需要将什么粘贴到数据帧中作为侦听器

我尝试的是:

"a" + str(range(0,3))
但结果是:

a[0, 1, 2]
使用

输出

["a0","a1","a2"]

您可以使用列表理解:

["a" + str(i) for i in range(0,3)]

将列表理解与
格式一起使用

c = ['a{}'.format(x) for x in range(3)]
print (c)
['a0', 'a1', 'a2']
如果要更改数据框中的列名称:

df.columns = 'a' + df.columns.astype(str)
或使用:

样本:

df = pd.DataFrame([[2,3,4]])
df = df.add_prefix('a')
print (df)
   a0  a1  a2
0   2   3   4

创建范围后,尝试在列表迭代中将字符串
'a'
添加到列表中。例如:

column_names = range(3)
column_names = ['a'+str(i) for i in x]

然后,在定义数据帧时,您可以使用此列表作为
参数。

也许一个不太简洁但更易于阅读的方法是:

b = []
for i in range(0, 3):  
    c = "a" + str(i)
    b.append(c)
在这里,我们获取一个空列表,添加一个字符串,其中包含所需的字母和
range()
的值,将它们一起添加,并使用
append()
方法将它们添加到列表中

range(0, 3)
返回如下列表:

[0, 1, 2]
如果你想让它变成[a0,a1,a2],你可以使用列表

e、 g

如果您没有使用列表理解,那么这只是一种简洁的写作方式

myList = []
for val in range(0, 3):
    myList.append("a" + str(val))
在此之后,我的列表将被删除

['a0', 'a1', 'a2']

您可以使用
map

new_data = map(lambda x:"a{}".format(x), range(3))
输出:

['a0', 'a1', 'a2']
['a0', 'a1', 'a2']
或者,稍微短一点:

new_string = ("a{} "*3).format(*range(3)).split()
输出:

['a0', 'a1', 'a2']
['a0', 'a1', 'a2']

如果您正在寻找最短的代码,请尝试列表理解(在Python 3.6+中):


“[“+”,”。加入(“a”+str(i)代表范围(0,3))+“]”内的i“
所有答案都有效,谢谢。我对他们都投了更高的票,不知道该接受哪一个。有没有一个术语可以用来表示在一行中进行实质性的循环?如果我想了解更多,我会查什么?(你和其他人是如何对y中的x使用
z(x)
而不是对x=1到3使用
z(x)
)@BruceWayne-这被称为
列表理解
['a0', 'a1', 'a2']
[f'a{i}' for i in range(3)]