如何将整数迭代附加到python中的字符串中?

Posted

技术标签:

【中文标题】如何将整数迭代附加到python中的字符串中?【英文标题】:How to append a integer iteration into a string in python? 【发布时间】:2019-03-01 04:26:02 【问题描述】:

所以这是我的问题:

首先我迭代

for i in range(1,21):
    print (i)

那么我有一个变量 basename="站"

我想要一个输出为 Station_1.txt、Station_2.txt 等的结果。

我设法将“_”添加到变量 basename 中,例如

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

但是现在我遇到了如何在变量 basename 之上进行迭代的问题,我可以得到它自己的“Station_,1,Station_,2”,但不在字符串本身内。

对不起,这里是初学者:)

【问题讨论】:

【参考方案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

【讨论】:

【参考方案2】:

您可以在一行中完成此操作!请尝试以下操作:

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】:

您可以使用字符串格式来忘记担心整数

您仍然使用数字作为参数循环并保持基本名称相同:

base = 'Station'
for i in range(1, 21):
    name = '_.txt'.format(base, i)
    print(name)  # or do whatever with 'name'

【讨论】:

【参考方案4】:

我会使用.format()。见https://docs.python.org/3.3/library/stdtypes.html#str.format

例如:

base_string = 'Station'
for i in range(1,21):
    print('_.txt'.format(base_string, i))

【讨论】:

在 python 3.6+ 中你也可以使用 f 字符串 print(f"base_string_i') 。文档:docs.python.org/3/reference/lexical_analysis.html#f-strings【参考方案5】:

你想要这样的东西吗?

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

【讨论】:

以上是关于如何将整数迭代附加到python中的字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

Python:将 a 附加到字典中的列表

如何使用 C# 将字符附加到 MongoDB 文档中的字符串

如何将字符串附加到字典中的列表

如何将切片字符串中的单个字符转换为 Python 中的整数?

如何将字符串数组附加到共享内存? C

如何将字符串附加到R中的变量名子集?