Hướng dẫn duplicate strings in python

I'm just starting some string manipulations and found this question. I was probably trying to do something like the OP, "usual me". The previous answers did not clear up my confusion, but after thinking a little about it I finally "got it".

Nội dung chính

  • Copying the string
  • Use an Empty String to Get a Copy String in Python
  • Use Slicing to Copy a String in Python
  • Use the str() Function to Copy a String in Python
  • Use String Formatting to Copy a String in Python
  • Related Article - Python String
  • How do I repeat a string in Python?
  • How do you make a copy of a string?
  • How do you make duplicates in Python?
  • What does Copy () do in Python?

Nội dung chính

  • Copying the string
  • Use an Empty String to Get a Copy String in Python
  • Use Slicing to Copy a String in Python
  • Use the str() Function to Copy a String in Python
  • Use String Formatting to Copy a String in Python
  • Related Article - Python String
  • How do I repeat a string in Python?
  • How do you make a copy of a string?
  • How do you make duplicates in Python?
  • What does Copy () do in Python?

As long as a, b, c, d, and e have the same value, they reference to the same place. Memory is saved. As soon as the variable start to have different values, they get start to have different references. My learning experience came from this code:

import copy
a = 'hello'
b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)

print map( id, [ a,b,c,d,e ] )

print a, b, c, d, e

e = a + 'something'
a = 'goodbye'
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e

The printed output is:

[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]

hello hello hello hello hello

[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]

goodbye hello hello hello hello something

In this tutorial, we are going to learn about multiple ways to copy a string in Python.

Copying the string

Consider, we have the following string:

To make a copy of a string, we can use the built-in slice syntax [:] in Python.

Example:

name = 'kelly'

copy = name[:]

print(copy) # 'kelly'

Similarly, we can also do it by assigning a string to the new variable.

name = 'kelly'

copy = name

print(copy) # 'kelly'

or we can use the str() function to create a string copy.

name = 'kelly'

copy = str(name)

print(copy) # 'kelly'
  1. Use an Empty String to Get a Copy String in Python
  2. Use Slicing to Copy a String in Python
  3. Use the str() Function to Copy a String in Python
  4. Use String Formatting to Copy a String in Python

This tutorial will introduce different methods to copy a string in Python.

Before we move on to the different methods to copy a string in Python, we should keep in mind that a string cannot be directly copied.

In Python, strings are immutable, meaning that their value cannot change over the course of the program. Being immutable also means that a string cannot directly have a copy.

If a new variable is declared and is directly assigned the value of a given string variable, this would not create a copy of the original string. Instead, both of the created variables would point to the same string.

However, there are a few loopholes that can be utilized to copy a string in Python. We will discuss all such methods below in this article.

Use an Empty String to Get a Copy String in Python

We start with the simplest method, which is very easy to implement. We need to add an empty string to the original string using the concatenation operator while declaring the new string.

The following code uses an empty string to get a copy string in Python.

ostr = 'Web'
nstr = '' + ostr
print(nstr)

The above code provides the following output:

Web

Use Slicing to Copy a String in Python

The slice or the : operator can be utilized to slice the original and generate a new one. The slicing operator works by taking a start and an index value in its syntax.

If both these values are not passed, the original string would be copied intact to the new variable.

The following code uses slicing to copy a string in Python.

ostr = 'Web'
nstr = ostr[:]
print(nstr)

The above code provides the following output:

Web

Use the str() Function to Copy a String in Python

The str() function, when made to pass a given string as its argument, returns the original string itself. This can be utilized when we have to create a copy string.

The following code uses the str() function to copy a string in Python.

ostr = 'Web'
nstr = str(ostr)
print(nstr)

The above code provides the following output:

Web

Use String Formatting to Copy a String in Python

String formatting supplies a wide variety of customizations for the user to select from in the python code. The % sign is commonly implied as the interpolation operator and is utilized to implement string formatting.

Although there is more than one way to implement string formatting in Python, the interpolation operator or % sign is very versatile. It works on all available versions of Python and is the oldest of the lot.

The % sign, along with a letter representing the conversion type, is marked as a placeholder for the variable.

The following code uses string formatting to copy a string in Python.

ostr = 'Web'  
nstr = '%s' % ostr
print(nstr)

The above code provides the following output:

Web

Although copying a string can be achieved indirectly in Python, it is not essentially a recommended practice. The copy module does not work properly on the string.

Moreover, these strings cannot really be mutated in any way; therefore, creating a copy is pretty much a waste of time and system memory.

Related Article - Python String

  • Remove Commas From String in Python
  • Check a String Is Empty in a Pythonic Way
  • Convert a String to Variable Name in Python
  • Remove Whitespace From a String in Python
  • How do I repeat a string in Python?

    Use the syntax a_string * n with n as an integer to repeat a_string n number of times.

    How do you make a copy of a string?

    Copying one string to another - strcpy strcpy can be used to copy one string to another. Remember that C strings are character arrays. You must pass character array, or pointer to character array to this function where string will be copied. The destination character array is the first parameter to strcpy .

    How do you make duplicates in Python?

    In Python, we use = operator to create a copy of an object. You may think that this creates a new object; it doesn't. It only creates a new variable that shares the reference of the original object. Let's take an example where we create a list named old_list and pass an object reference to new_list using = operator.

    What does Copy () do in Python?

    The Python copy() method creates a copy of an existing list. The copy() method is added to the end of a list object and so it does not accept any parameters. copy() returns a new list.