Concatenate 2 numbers in python

Example 1: [Example 2 is much faster, don't say I didn't warn you!]

a = 9
b = 8
def concat[a, b]:
    return eval[f"{a}{b}"]

Example:

>>> concat[a, b]
98

Example 2:

For people who think eval is 'evil', here's another way to do it:

a = 6
b = 7
def concat[a, b]:
    return int[f"{a}{b}"]

Example:

>>> concat[a, b]
67

EDIT:

I thought it would be convienient to time these codes, look below:

>>> min[timeit.repeat["for x in range[100]: int[str[a] + str[b]]", "",
          number=100000, globals = {'a': 10, 'b': 20}]]
9.107237317533617
>>> min[timeit.repeat["for x in range[100]: int[f'{a}{b}']", "",
          number=100000, globals = {'a': 10, 'b': 20}]]
6.4986298607643675
>>> min[timeit.repeat["for x in range[5]: eval[f'{a}{b}']", "", #notice the range[5] instead of the range[100]
          number=100000, globals = {'a': 10, 'b': 20}]]
4.089137231865948 #x20

The times:

eval: about 1 minute and 21 seconds.

original answer: about 9 seconds.

my answer: about 6 and a half seconds.

Conclusion:

The original answer does look more readable, but if you need a good speed, choose int[f'{vara}{varb}']

P.S: My int[f'{a}{b}] syntax only works on python 3.6+, as the f'' syntax is undefined at python versions 3.6-

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given two integers a and b. The task is to concatenate these two integers into one integer.

    Examples:

    Input : a = 806, b = 91
    Output : 80691
    
    Input : a = 5, b = 1091
    Output : 51091
    
    

    Method 1: One method of achieving this can be counting the number of digits of second number. Then multiply the first number with 10^digits and adding both the numbers. Below is the implementation.

    def numConcat[num1, num2]:

         digits = len[str[num2]]

         num1 = num1 * [10**digits]

         num1 += num2

         return num1

    a = 906

    b = 91

    print[numConcat[a, b]]

    Method 2: Another method can be converting both the numbers to the string. Then concatenate them and convert them back to integers. Below is the implementation.

    def numConcat[num1, num2]:

            num1 = str[num1]

            num2 = str[num2]

            num1 += num2

            return int[num1]

    a = 906

    b = 91

    print[numConcat[a, b]]

    Output:

    90691
    

    View Discussion

    Improve Article

    Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given two integers n1 and n2, the task is to concatenate these two integers into one integer.
    Example: 
     

    Input: n1 = 12, n2 = 34
    Output: 1234
    
    Input: n1 = 1, n2 = 93
    Output: 193

    Approach: The simplest approach to do this is: 
     

    • Convert both numbers to string
    • Concatenate both strings into one, as this is comparatively easy
    • Convert this concatenated string back to integer

    Program:
     

    C++

    #include

    #include

    using namespace std;

    int concat[int a, int b]

    {

        string s1 = to_string[a];

        string s2 = to_string[b];

        string s = s1 + s2;

        int c = stoi[s];

        return c;

    }

    int main[]

    {

        int a = 23;

        int b = 43;

        cout

    Chủ Đề