如何在Python中将整数迭代附加到字符串?

4
所以这是我的问题:
首先,我进行迭代。
for i in range(1,21):
    print (i)

我有一个变量

basename="Station"

我想要得到的结果是:Station_1.txt,Station_2.txt等。

我已经成功将"_"添加到变量basename中,如下所示:

mylist1 = ("_")
s = (basename)
for item in mylist1:
    s += item

但现在我遇到了一个问题,就是如何将迭代次数放在变量 basename 的顶部。我可以获得它自己的迭代次数,例如 "Station_, 1, Station_, 2",但不能放在字符串本身内部。
抱歉,我是一个完全的初学者 :)
5个回答

9
您可以在一行代码中完成这个操作!尝试以下内容:
basename = "Station"
result = ["{}_{}.txt".format(basename, i) for i in range(1, 21)]
print(result)`

 >> ['Station_1.txt','Station_2.txt','Station_3.txt', 
     'Station_4.txt','Station_5.txt','Station_6.txt', 
     'Station_7.txt','Station_8.txt','Station_9.txt', 
     'Station_10.txt','Station_11.txt',Station_12.txt',
     'Station_13.txt','Station_14.txt','Station_15.txt',
     'Station_16.txt','Station_17.txt','Station_18.txt',
     'Station_19.txt','Station_20.txt']`

3

你是否希望得到类似这样的内容?

basename = "Station"
for i in range(1, 21):
    value = basename + "_" + str(i) + ".txt"
    print(value)

输出:

Station_1.txt
Station_2.txt
Station_3.txt
Station_4.txt
Station_5.txt
Station_6.txt
Station_7.txt
Station_8.txt
Station_9.txt
Station_10.txt
Station_11.txt
Station_12.txt
Station_13.txt
Station_14.txt
Station_15.txt
Station_16.txt
Station_17.txt
Station_18.txt
Station_19.txt
Station_20.txt

2

在Python 3.6+中,您还可以使用f字符串print(f"{base_string}_{i}')。文档:https://docs.python.org/3/reference/lexical_analysis.html#f-strings - k0nG

1
你可以使用字符串格式化来避免担心整数。
你仍然可以循环,参数为数字,并保持基本名称相同。
base = 'Station'
for i in range(1, 21):
    name = '{}_{}.txt'.format(base, i)
    print(name)  # or do whatever with 'name'

1

如果可能的话,最好避免使用字符串连接。另一种选择是Python现在支持格式化字符串,可以通过前缀f来解决您的问题,如下所示:

base_string = 'Station'

for i in range(1, 21):
    print(f'{base_string}_{i}.txt')    

这是在Python 3.6中新增的功能。将字符串补零也可能很有用,这可以确保字符串被正确排序:
base_string = 'Station'

for i in range(1, 21):
    print(f'{base_string}_{i:02}.txt')

这将给你:
Station_01.txt
Station_02.txt
Station_03.txt
Station_04.txt
Station_05.txt
Station_06.txt
Station_07.txt
Station_08.txt
Station_09.txt
Station_10.txt
Station_11.txt
Station_12.txt
Station_13.txt
Station_14.txt
Station_15.txt
Station_16.txt
Station_17.txt
Station_18.txt
Station_19.txt
Station_20.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接