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
