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)]