TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

Python Convert Types: Tuple, List and Dictionary

This Python article converts objects. It converts tuples, strings, lists and dictionaries.

Convert. A tuple is not a list.

This is normally not a problem. But when we have another method that requires a list, we must convert that tuple.

To transform types, we have many options in Python. Often we employ built-in methods like str or int or float. But sometimes custom methods are needed.

Tuple, list. This program creates a tuple with three elements. It then converts that tuple into a list with the list() method. This call returns (naturally) a list.

Result: The program shows that the two collections are separate. They occupy different locations in memory.

List: The list built-in method copied all the tuple's elements into a separate, new collection.

Based on:

Python 3

Python program that converts tuple to list

vegetables = ("carrot", "squash", "onion")

# Convert to list.
veg2 = list(vegetables)
veg2.append("lettuce")

# Print results.
print(vegetables)
print(veg2)

Output

('carrot', 'squash', 'onion')
['carrot', 'squash', 'onion', 'lettuce']

Tuple, string. A tuple can be converted into a single string. This is best done with the string join method. Join() is called on a delimiter string.

Tip: We pass Join() a tuple, and the result is a string containing the tuple's items.

Python program that converts tuple, string

tup = ("rabbit", "mouse", "gorilla", "giraffe")

# Join tuple with no space.
s = "".join(tup)
print(s)

# Join tuple with slash.
s = "/".join(tup)
print(s)

Output

rabbitmousegorillagiraffe
rabbit/mouse/gorilla/giraffe

List, string. Lists can also be converted into strings with the join method. This code sample is the same as one that converts a tuple, but it uses a list.

Separators: We join() together the strings with no separator, and with a semicolon.

Tip: Join can handle any iterable collection, not just tuples and lists. Try it with a set.

Python program that converts list, string

vehicles = ["car", "truck", "tractor"]

# Convert list to string with join.
result = "".join(vehicles)

# Convert with semicolons separating strings.
result2 = ";".join(vehicles)

print(result)
print(result2)

Output

cartrucktractor
car;truck;tractor

Dictionary, list. With the list() method, we can also convert a dictionary to a list. There is some complexity here. When we call items() on a dictionary, we get a view.

And: A view is different from a list. It cannot be manipulated in the same ways.

Items: We get a view of the dictionary with items() and then convert that to a list. So we actually convert the dictionary to a list.

Tip: With dictionary views, we can change the order. For example, we can use the sorted() method to reorder elements in a view.

Python program that converts dictionary

vegetables = {"carrot": 1, "squash": 2, "onion": 4}

# Convert dictionary to list of tuples.
items = list(vegetables.items())

for item in items:
    print(len(item), item)

Output

2 ('carrot', 1)
2 ('squash', 2)
2 ('onion', 4)

Int built-in. Numbers can be converted to different types. In many languages this is called explicit casting. In Python we use a method syntax, such as int(), to do this.

Int: This method receives a number and returns the integral form of that number.

So: If we pass 1.5 to int(), it will return 1. It always removes the fractional part of the number.

Python program that converts to int

floating = 1.23456

# Convert to int and print.
print(floating)
print(int(floating))

Output

1.23456
1

Int, string. A number is converted into a string with str. And a string is converted into a number with int. In this example, we do these two conversions.

And: We show the value types by using them. We use len() on the string and add one to the number.

So: The string "123" has three characters. And the number 123 is increased to 124 when we add one to it.

Python program that converts int, string

# Convert number to string.
number = 123
value = str(number)

# Print the string and its character count.
print(value)
print(len(value))

# Convert string to number.
number2 = int(value)

# Print the number and add one.
print(number2)
print(number2 + 1)

Output

123
3
123
124

Class, string. We can specify how a class is converted to a string with the __repr__ method. This method returns a string. We can have it return values of fields in the class.

Note: The repr and str methods (with no underscores) are used on instances of a class. If the __repr__ method is defined, it will be used.

Tip: Classes like list also have repr (representation) methods. This is why you can directly print a list.

Python that converts class to string

class Test:
    def __init__(self):
        self.size = 1
        self.name = "Python"

    def __repr__(self):
        # Return a string.
        return "Size = " + str(self.size) + ", Name = " + str(self.name)

t = Test()

# Str and repr will both call into __repr__.
s = str(t)
r = repr(t)

# Display results.
print(s)
print(r)

Output

Size = 1, Name = Python
Size = 1, Name = Python

String, chars. We can get the chars from a string with a list comprehension. This syntax uses an inner loop expression to loop over each char in the string. This results in a list of chars.

Python that gets list of chars

value = "cat"

# Get chars from string with list comprehension.
list = [c for c in value]

print(list)

Output

['c', 'a', 't']

Bytes, string. Python 3 has the space-efficient bytes type. We can take a string and convert it into bytes with a built-in. We provide the "ascii" encoding as a string argument.

Decode: To convert from the bytes data back into a string, we can use the decode method. We again must provide an encoding string.

Python that converts bytes, string

# Convert from string to bytes.
value = "carrot"
data = bytes(value, "ascii")
print(data)

# Convert bytes into string with decode.
original = data.decode("ascii")
print(original)

Output

b'carrot'
carrot

Bytes, megabytes. A number in one unit, like bytes, can be converted into another, like megabytes. Here we divide by 1024 twice. Further conversions (bytes, gigabytes) are possible.

Note: Large files have many bytes. In an interface, displaying this number is awkward and hard to read.

Convert: One megabyte contains 1024 kilobytes. And 1 kilobyte contains 1024 bytes.

So: To get from bytes to megabytes, we divide by 1024, and then by 1024 again: two divisions are needed.

And: To go from kilobytes to megabytes, we need just one division by 1024. This is simple, but testing is important.

Python that converts bytes, megabytes

def bytestomegabytes(bytes):
    return (bytes / 1024) / 1024

def kilobytestomegabytes(kilobytes):
    return kilobytes / 1024

# Convert 100000 bytes to megabytes.
megabytes1 = bytestomegabytes(100000)
print(100000, "bytes =", megabytes1, "megabytes")

# 1024 kilobytes to megabytes.
megabytes2 = kilobytestomegabytes(1024)
print(1024, "kilobytes =", megabytes2, "megabytes")

Output

100000 bytes = 0.095367431640625 megabytes
1024 kilobytes = 1.0 megabytes

A summary. Conversions in Python use many syntax forms. Some conversions are numeric. These can be done with mathematical methods or arithmetic.

Often, conversions are encapsulated in a method definition. And for compound types such as collections, the Python language provides many built-in methods to convert, such as list().


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf