Learn C & Python Part 3

This blog is in continuation of my last blog . I have discussed this blog at  YouTube video in detail. Please SUBSCRIBE to YouTube channel Embedkari  for further discussion on Embedded Systems.

Key Takeaway : Understanding of data structure elements(Strings,Lists,Tuples) in Python

Strings 
    • In C , single quote(‘A’) is used for single character and double(“ABC”) for string.
    • In Python, Both single and double quotes can be used to manipulate strings. ‘ABC’ and “ABC” are both valid strings. Backslash(\) can be used to escape quote and special character. Additionally there is a provision of raw string, to treat special characters as normal, by putting r before first quote
    • >>> s= 'first \n second' 
      >>> print(s) 
      first 
      second 
      >>> s=r'first \n second' 
      >>> print(s) 
      first \n second
    • In C, You need library functions strlen, strcpy,strcat for string manipulation. I found this link very useful .
    • In Python, String can be manipulated similar to numbers. For ex : Add,Copy,comparison(==)etc. You may use built-in functions such as len(),str.islower() for respective operations.
    • Strings can be concatenated using + and repeated using *
    • Two or more string literals put together gets automatically concatenated
    • Slicing  or Extract a part using positive & negative indexing , :
      • mystr[0], mystr[n], mystr[m:n],mystr[:n],mystr[n:],mystr[-1] are as
      • First ,         nth,             m to n,    before n ,  after n,      last
      • mystr[:]  contains  All elements
      • You may inspect  manipulated string using id(mystr) for better understanding the concept
Array vs Lists 
  •  C Array , defined  with square brackets , is a collection of same data types
  •  We have already discussed C Array,Linked List etc at  this earlier
  • C Array is immutable while Python List is mutable i.e can be modified
  • Python List , defined  with square brackets, is an ordered dynamic collection of arbitrary objects separated by commas. It can contain functions and classes as well. It supports concatenation using + and slicing as explained in strings. It also has a number of built-in functions for manipulation
  • One can use help() to get a quick overview of list methods  such as insert(),remove(),pop(),sort() etc. We will discuss alternative method in next blog
  • List can be nested
  • >>> a=[True,1,5,6,"name","class"]
    >>> print(a)
    [True, 1, 5, 6, 'name', 'class']
    >>> a[0]
    True
    >>> a[-1]
    'class'
    >>> b=[8,'marks']
    >>> c=a+b
    >>> print(c)
    [True, 1, 5, 6, 'name', 'class', 8, 'marks']
    #Try type(c[0])
  •  List can be used as stack(LIFO)
    • >>> stack=[1,2,3,"test",7]
      >>> stack
      [1, 2, 3, 'test', 7]
      >>> stack.append(9)
      >>> stack
      [1, 2, 3, 'test', 7, 9]
      >>> stack.pop()    
      9
      >>> stack
      [1, 2, 3, 'test', 7]
  •  one can optionally pass item index to pop() for removing particular element, remove() requires the object itself as parameter
  •  List can also be used as queue(FIFO)
  • >> from collections import deque
    >>> queue=deque(["test",1,5,6"OK",7])
    >>> queue
    deque(['test', 1, 5, 6, 'OK', 7])
    >>> queue.popleft()
    'test'
    >>> queue
    deque([1, 5, 6, 'OK', 7])   
    #queue.append() will add element to right end
    >>> del queue[3]
    >>> queue
    deque([1, 5, 6, 7])
  • del command shown above can be used for any list
Tuples
  • Tuples are used for grouping data similar to struct in C but here is no name and access is like array element
  • Tuples can be a set of elements separated by comma(,)
  • Single tuple also must have comma(,) otherwise it will be simple assignment
  • It can be defined with or without parenthesis
  • List is mutable but Tuple is immutable. The  list properties of slicing,nesting and access by square bracket applies to Tuple as well but it can’t be modified.
  • Tuple is faster than List and protects data from modification
  • >>> a=2,3,"test",4,True
    >>> a
    (2, 3, 'test', 4, True)
    >>> type(a[-1])
    <class 'bool'>
    >>> a[2:-1]
    ('test', 4)
    >>> a[2:4]
    ('test', 4)
    #Try type(a) 

I am trying to improve usability of my  site.If you find something missing, Any feedback in comment box will help to  take corrective action.  Please subscribe to YouTube channel Embedkari  for additional embedded related stuff.

Advertisements

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.