这个问题在这里已经有了答案:Making a string out of a string and an integer in Python [重复](6 个答案)5 年前关闭。
我想在 for 循环中使用附加的整数创建一个字符串。像这样:
for i in range(1, 11):
string = "string" + i
但它返回一个错误:
类型错误:+ 不支持的操作数类型:“int”和“str”
连接字符串和整数的最佳方法是什么?
t it be
range(1,10)`?
string = "string10"
? string = "string1string2string3string4string5string6string7string8string9string10"
?十个不同的变量?
range(1,11)
:)
range(11)
正在看评论......
笔记:
此答案中使用的方法(反引号)在更高版本的 Python 2 中已弃用,并在 Python 3 中删除。请改用 str()
函数。
您可以使用:
string = 'string'
for i in range(11):
string +=`i`
print string
它将打印 string012345678910
。
要获得 string0, string1 ..... string10
,您可以将其用作 YOU suggested:
>>> 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
,您可以将其用作 YOU suggested:
>>> 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()
。
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]
):
类型错误,因为括号表示列表的索引 (a[3]) 或切片 (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's new string formatting method 的文档。它非常强大。
range={(1,10): "foo"}
,那么 range[1,10]
实际上是一个语法有效的表达式。)
您可以使用生成器来执行此操作!
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)) + ']'
如果我们想要像 '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)
不定期副业成功案例分享
47
,那么为什么我会在我的字符串中得到这个:u'47'
repr()
函数,而不是str()
。对于非整数值,repr()
和str()
结果可能会有很大差异。