Python 字符串和整数连接[重复]
- 2025-03-06 08:52:00
- admin 原创
- 66
问题描述:
我想在for循环中创建一个字符串,并在其后附加一个整数。如下所示:
for i in range(1, 11):
string = "string" + i
但它返回一个错误:
TypeError:不支持 + 的操作数类型:'int' 和 'str'
连接字符串和整数的最佳方法是什么?
解决方案 1:
笔记:
本答案中使用的方法(反引号)在 Python 2 的后续版本中已被弃用,并在 Python 3 中被删除。请改用str()
函数。
您可以使用:
string = 'string'
for i in range(11):
string +=`i`
print string
它将会打印string012345678910
。
为了让string0, string1 ..... string10
您能够按照您的建议使用它:
>>> string = "string"
>>> [string+`i` for i in range(11)]
对于 Python 3
您可以使用:
string = 'string'
for i in range(11):
string += str(i)
print string
它将会打印string012345678910
。
为了获得string0, string1 ..... string10
,您可以按照您的建议使用它:
>>> string = "string"
>>> [string+str(i) for i in range(11)]
解决方案 2:
for i in range (1,10):
string="string"+str(i)
为了得到string0, string1 ..... string10
,你可以这样做
>>> ["string"+str(i) for i in range(11)]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10']
解决方案 3:
for i in range[1,10]:
string = "string" + str(i)
该str(i)
函数将整数转换为字符串。
解决方案 4:
string = 'string%d' % (i,)
解决方案 5:
for i in range(11):
string = "string{0}".format(i)
您已完成 ( range[1,10]
) :
由于括号表示列表的索引 (
a[3]
) 或切片 ( ),因此会出现 TypeError。a[3:5]
由于无效而导致 SyntaxError
[1,10]
,并且range(1,10)
由于是,所以出现双重错误[1, 2, 3, 4, 5, 6, 7, 8, 9]
,而你似乎想要[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
这string = "string" + i
是一个 TypeError,因为你不能将整数添加到字符串中(与 JavaScript 不同)。
查看Python 的新字符串格式化方法的文档。它非常强大。
解决方案 6:
您可以使用生成器来完成此操作!
def sequence_generator(limit):
""" A generator to create strings of pattern -> string1,string2..stringN """
inc = 0
while inc < limit:
yield 'string' + str(inc)
inc += 1
# To generate a generator. Notice I have used () instead of []
a_generator = (s for s in sequence_generator(10))
# To generate a list
a_list = [s for s in sequence_generator(10)]
# To generate a string
a_string = '['+ ", ".join(s for s in sequence_generator(10)) + ']'
解决方案 7:
如果我们想要类似的输出'string0123456789'
,我们可以使用字符串的map函数和join方法。
>>> 'string' + "".join(map(str, xrange(10)))
'string0123456789'
如果我们想要一个字符串值列表,那么请使用列表理解方法。
>>> ['string'+i for i in map(str,xrange(10))]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']
笔记:
对于 Python 2.x,请使用xrange()。
对于 Python 3.x,请使用range()。
解决方案 8:
我做了其他事。
我想在列表的列表中替换包含短语的单词。
我想用一个新词来替换该字符串/单词,该新词将成为字符串和数字之间的连接,并且该数字/数字将指示短语/子列表/列表列表的位置。
也就是说,我用一个字符串和其后跟的增量数字替换了一个字符串。
myoldlist_1 = [[' myoldword'], [''], ['tttt myoldword'], ['jjjj ddmyoldwordd']]
No_ofposition = []
mynewlist_2 = []
for i in xrange(0, 4, 1):
mynewlist_2.append([x.replace('myoldword', "%s" % i + "_mynewword") for x in myoldlist_1[i]])
if len(mynewlist_2[i]) > 0:
No_ofposition.append(i)
mynewlist_2
No_ofposition
解决方案 9:
字符串和整数的连接很简单:只需使用
abhishek+str(2)
扫码咨询,免费领取项目管理大礼包!