Python create string with number

I want to create a string using an integer appended to it, in a for loop. Like this:

for i in range[1, 11]:
  string = "string" + i

But it returns an error:

TypeError: unsupported operand type[s] for +: 'int' and 'str'

What's the best way to concatenate the string and integer?

asked May 17, 2010 at 7:52

6

NOTE:

The method used in this answer [backticks] is deprecated in later versions of Python 2, and removed in Python 3. Use the str[] function instead.

You can use:

string = 'string'
for i in range[11]:
    string +=`i`
print string

It will print string012345678910.

To get string0, string1 ..... string10 you can use this as YOU suggested:

>>> string = "string"
>>> [string+`i` for i in range[11]]

For Python 3

You can use:

string = 'string'
for i in range[11]:
    string += str[i]
print string

It will print string012345678910.

To get string0, string1 ..... string10, you can use this as YOU suggested:

>>> string = "string"
>>> [string+str[i] for i in range[11]]

answered Aug 21, 2013 at 17:45

8

for i in range [1,10]:
    string="string"+str[i]

To get string0, string1 ..... string10, you could do like

>>> ["string"+str[i] for i in range[11]]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10']

answered May 17, 2010 at 7:53

YOUYOU

116k32 gold badges184 silver badges216 bronze badges

5

for i in range[1,10]: 
  string = "string" + str[i]

The str[i] function converts the integer into a string.

answered May 17, 2010 at 7:53

Rizwan KassimRizwan Kassim

7,6993 gold badges23 silver badges34 bronze badges

0

string = 'string%d' % [i,]

answered May 17, 2010 at 7:53

2

for i in range[11]:
    string = "string{0}".format[i]

You did [range[1,10]]:

  • a TypeError since brackets denote an index [a[3]] or a slice [a[3:5]] of a list,
  • a SyntaxError since [1,10] is invalid, and
  • a double off-by-one error since range[1,10] is [1, 2, 3, 4, 5, 6, 7, 8, 9], and you seem to want [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

And string = "string" + i is a TypeError since you can't add an integer to a string [unlike JavaScript].

Look at the documentation for Python's new string formatting method. It is very powerful.

answered May 17, 2010 at 8:17

Tim PietzckerTim Pietzcker

317k56 gold badges492 silver badges548 bronze badges

1

You can use a generator to do this!

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]] + ']'

answered Jul 3, 2015 at 3:01

0

If we want output like 'string0123456789' then we can use the map function and join method of string.

>>> 'string' + "".join[map[str, xrange[10]]]
'string0123456789'

If we want a list of string values then use the list comprehension method.

>>> ['string'+i for i in map[str,xrange[10]]]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']

Note:

Use xrange[] for Python 2.x.

Use range[] for Python 3.x.

answered Jan 5, 2015 at 9:10

Vivek SableVivek Sable

9,4663 gold badges36 silver badges51 bronze badges

1

I did something else.

I wanted to replace a word, in lists of lists, that contained phrases.

I wanted to replace that string / word with a new word that will be a join between string and number, and that number / digit will indicate the position of the phrase / sublist / lists of lists.

That is, I replaced a string with a string and an incremental number that follow it.

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

answered Apr 29, 2016 at 14:20

Concatenation of a string and integer is simple: just use

abhishek+str[2]

answered Apr 1, 2016 at 9:34

HiroHiro

2,8521 gold badge14 silver badges9 bronze badges

1

Not the answer you're looking for? Browse other questions tagged python string integer concatenation or ask your own question.

How do you add numbers to a string in Python?

If you want to concatenate a string and a number, such as an integer int or a floating point float , convert the number to a string with str[] and then use the + operator or += operator.

How do you add a number to a string?

Note that all strings have to be converted to numbers before using the addition [+] operator..
Pass each string to the Number object to convert it to a number..
Use the addition [+] operator, e.g. Number['1'] + Number['2'] ..
The addition operator will return the sum of the numbers..

Can we concatenate string and integer in Python?

One thing to note is that Python cannot concatenate a string and integer. These are considered two separate types of objects. So, if you want to merge the two, you will need to convert the integer to a string.

How do I print a number in a string in Python?

Method #2: Using %d operator This operator can be used to format the string to add the integer. The “d” represents that the datatype to be inserted to string is an integer.

Chủ Đề