Archive
Archive for February, 2017
namedtuple
February 9, 2017
Leave a comment
A namedtuple can be used as a simple class where you want to group together some attributes, you want to name them, and you don’t need any methods. As its name suggests, it’s a tuple, but you can assign names to the attribues.
Example
from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) # name of the "struct" and its attributes # Point = namedtuple('Point', 'x y') # it would also work, and it means the same # the 2nd parameter can be a single space-delimited string def main(): p = Point(x=1, y=4) print(p) # Point(x=1, y=4) p = Point(1, 4) print(p) # Point(x=1, y=4) print(p.x) # 1 print(p[0]) # 1 print(p == (1, 4)) # True
Class Syntax (Update: 20180814)
If you want to work with named tuples, there is an alternative syntax, which is available from Python 3.6. I find it more readable.
from typing import NamedTuple class MyPoint(NamedTuple): x: int y: int def main(): p = MyPoint(x=1, y=4) print(p) # MyPoint(x=1, y=4) p = MyPoint(1, 4) print(p) # MyPoint(x=1, y=4) print(p.x) # 1 print(p[0]) # 1 print(p == (1, 4)) # True
This is equivalent to the previous “namedtuple” version.
Categories: python
collections, namedtuple, typing
remove punctuations from a text
February 5, 2017
1 comment
Problem
You have a text and you want to remove punctuations from it. Example:
in: "Hello! It is time to remove punctuations. It is easy, you will see." out: "Hello It is time to remove punctuations It is easy you will see"
Solution
Let’s see a Python 3 solution:
>>> import string >>> tr = str.maketrans("", "", string.punctuation) >>> s = "Hello! It is time to remove punctuations. It is easy, you will see." >>> s.translate(tr) 'Hello Its time to remove punctuations Its easy youll see'
Docs: str.maketrans(), str.translate().
Categories: python
cleaning, punctuation, translate