Meet Python: little notes 2

From this blog I will turn to Markdown for original writing.
Source: http://www.liaoxuefeng.com/

list

  • a list could be accessed using positive number (start from 0) in sequence or negative number in reverse sequence. Note that square brackets should be used here;
  • listname.append('...'): add ... as the last element in the list;
  • listname.insert(index, '...'): insert ... as the indexed element of the list;
  • listname.pop(): delete the last element in the list;
  • listname.pop(index): delete the last element in the list;
  • listname[inedx] = '...': replace the indexed element to ...;
    Note: The Python type list is like cell in Matlab, that the elements within one list are not necessarily the same type. The element in a list can even be another list.
>>> example = ['a', 'b', ['c', 'd'], 'e'];
>>> example[2][1]
d  

# Defind a null list
>>> L = [];
>>> len(L)
0

tuple

  • a list whose elements cannot be changed once initialised. But pay attention that when defining a tuple, you should use round brackets (list: square brackets);
# Defing a null tuple
>>> t = ()

# Defining a tuple with only one element
>>> t = (1,)

# If you defining like this:
>>> t = (1)
1   # t is not a tuple, but an integer: 1
  • just like list, the elements in a tuple can be of different type, so that we could use list to construct an 'alterable tuple'.
>>> t = ('a', 'b', ['A', 'B']);
>>> t[2][0] = 'X';
>>> t[2][1] = 'Y';
>>> t
('a', 'b', ['X', 'Y'])

♥ if-else

  # - pay attention to the colon at the end of each judegmeng sentence;
  # - unlike Matlab, there is no *end* at the end of the structure.
  if <judgement 1>:
      <action 1>
  elif <judgement 2>:
      <action 2>
  elif <judgement 3>:
      <action 3>
  else:
      <action 4>

input

  • When using input(), be cautious about the data type obtain from input(), which is originally str. If number is needed, int() privides a way to convert string to integer.

♥ Loop

  • for...in
>>> sum = 0
>>> for x in range(5):   # list(range(5)): [0, 1, 2, 3, 4]
       sum = sum + x
>>> print(sum)
10
  • while
    End when the condition is not satisfied.
>>> sum = 0
>>> n = 99
>>> while n > 0:
        sum = sum + n
        s = n - 2
>>> print(sum)
2500

♥ dict

  • Abbreviation of dictionary, realising correspondance between multiple lists. With 'key-value' structure, dict could speed up the searching process;

  • operation examples:

# Using following dict to replace the following two lists in one time:
# names = ['Mary', 'Edith', 'Sybil']
# birth_order = [1, 2, 3]
>>> downton = {'Mary': 1, 'Edith': 2, 'Sybil': 3}   # Using brace here
>>> downton['Mary']
1

# value assignment and obtainment
>>> downton['Edith'] = 2
>>> downton.get('Edith')
2
>>> downton.get('Carson')

   # no return value if the key does not exist in the dict
>>> downton.get('Cora', -1)   # return -1 if 'Cora' is not found
-1
>>> downton.get('Edith', -1)   # while if 'Edith' already exists, will  
                               # return the true value no matter what is  
                               # assigned
2

#check if certain elements is in the dict
>>> 'Mary' in d
True
# Value deletion
>>> downton.pop('Sybil')
3
>>> print(downton)
{'Edith': 2, 'Mary': 1}
  • Note
    1 dict consumes a lot of RAM;
    2 keys in dict should be unchanged objects: string, integer are OK while list cannot be a key;
    3 The keys' storing order of dict is different from keys' assignment order;
>>> downton = {'Mary': 1, 'Edith': 2, 'Sybil': 3}   # Using brace here
>>> downton['Mary']
1
>>> print(downton)
{'Edith': 2, 'Sybil': 3, 'Mary': 1}

set

  • Store keys in a non-repeat way(without values);
# A list should be provided as input to initialise a set
>>> s = set([1, 1, 2, 2, 3, 4])
>>> s
{1, 2, 3}   # non-repeat keys
  • set_name.add(...): add ... into a set;

  • set_name.remove(...):remove certain key from a sey;

  • Note
    1 like dict, keys in set should be unchanged objects;
    2 advantage of set: good for set operation for its out-of-order and non-repeat nature.

原文地址:https://www.cnblogs.com/minks/p/5520056.html