Python字符串和整数连接

我想在循环中使用一个整数来创建一个字符串。是这样的:

for i in range(1, 11):
string = "string" + i

但是它会返回一个错误:

不支持'int'和'str'的操作数类型

连接字符串和整数的最佳方法是什么?

765175 次浏览
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']
for i in range[1,10]:
string = "string" + str(i)

str(i)函数的作用是:将整数转换为字符串。

string = 'string%d' % (i,)
for i in range(11):
string = "string{0}".format(i)

你做了(range[1,10]):

  • TypeError,因为括号表示列表的索引(a[3])或切片(a[3:5]),
  • 因为[1,10]是无效的,并且
  • 一个双off-by- 1错误,因为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的新字符串格式化方法的文档。它非常强大。

注意:

此答案中使用的方法(反勾号)在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)]

如果我们想要类似'string0123456789'的输出,那么我们可以使用地图函数和字符串加入方法。

>>> '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 ()

您可以使用生成器来完成此操作!

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)) + ']'
字符串和整数的连接很简单: 只使用< / p >
abhishek+str(2)

我做了另一件事。

我想在包含短语的列表中替换一个单词。

我想用一个新的单词替换这个字符串/单词,这个单词将是字符串和数字之间的连接,这个数字/数字将指示短语/子列表/列表的位置。

也就是说,我用一个字符串和后面的增量数字替换了一个字符串。

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