我想在一个for循环中创建一个包含整数的字符串。 像这样:
for i in range(1, 11):
string = "string" + i
但它返回了一个错误:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
如何最好地连接字符串和整数?
我想在一个for循环中创建一个包含整数的字符串。 像这样:
for i in range(1, 11):
string = "string" + i
但它返回了一个错误:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
如何最好地连接字符串和整数?
该回答中使用的方法(反引号)在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)]
你可以使用:
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)]
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']
repr()
等价,而不是等价于 str()
。 - Bastien Léonardfor 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]
):
a[3]
) 或者切片 (a[3:5]
),而不是用于 range()
函数的参数。[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,因为在 Python 中不能将整数与字符串相加(与 JavaScript 不同)。
查看Python 的新字符串格式化方法文档。它非常强大。
range={(1,10): "foo"}
,那么range[1,10]
实际上是一个语法上有效的表达式。) - Tim Pietzckerdef 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)) + ']'
'string0123456789'
的结果,那么我们可以使用map函数和string的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()。
我做了其他事情。
我想要替换包含短语的列表中的单词。
我希望用一个由字符串和数字组成的新单词来替换该字符串/单词,这个数字将指示短语/子列表/列表中列表的位置。
也就是说,我用一个字符串和随后的递增数字替换了一个字符串。
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
字符串和整数的连接很简单:只需使用
abhishek+str(2)
range(1,10)
吧? - stephanstring = "string10"
吗?还是string = "string1string2string3string4string5string6string7string8string9string10"
?或者是十个不同的变量? - badprange(1,11)
:) - Tim Pietzckerrange(11)
... - stephan