Python数值,序列类型及方法

Python中数值类型和序列类型.

py中有四种基本的数值类型和三中序列类型.定义相应变量值使用type()函数可以查看类型.

数值类型

<class'int'> # int为整型.
<class'float'> # float为浮点型.
<class'bool'> # bool为布尔型.(eg: False,True)
<class'complex'> # complex为虚数型.(eg: 1 + 2j)

序列类型

<class'str'> # str为字符串类型.不可变对象.
<class'list'> # list为列表类型.
<class'tuple'> # tuple为元组类型.不可变对象.

数值类型中的float类型,并不是准确的小数点数据.

>>> a = 1.2
>>> b = 1
>>> a - b
0.19999999999999996
>>>

为到达精准,通常使用decimal模块来完成.

>>> import decimal
>>> a = decimal.Decimal('1.2')
>>> b = decimal.Decimal('1')
>>> a - b
Decimal('0.2')
>>>

可以进行类型转换,将Decimal类型换掉.

列表方法(list表示列表对象.使用方法,函数时应注意其是否改变原数据,是否返回返回值及其效率).

  • list.append(arg): 追加一个元素对象在list末尾.
  • list.count(arg): 计算list中指定元素出现的次数.
  • list.index(arg): 返回list中指定元素的索引.左边先出现的元素优先.
  • list.copy(): 返回list的副本.
  • list.extend(arg): 将一个list添加到list的末尾.
  • list.pop(arg): 加参数为弹出(去除)指定元素索引,不加参数为随机弹出;并返回弹出的值.
  • list.remove(arg): 移除指定元素.
  • list.clear(): 清空list内容.
  • list.reverse(): 倒序排放list元素.
  • list.sort(): 从小到大(ascii)排放list中的元素.
  • list.insert(arg1, arg2): 将一元素插入到list中指定位置.第一个参数表示插入的索引位置,第二个参数表示插入的元素对象.
  • sorted(list): 内置函数,与sort方法类似,但是不改变原list,返回排序后的list副本.
  • reversed(list): 内置函数,与reversed方法类似,但是不改变原list,返回一个可迭代的倒序后的list副本对象.

SHOW

>>> a = []
>>> a.append(1)
>>> a.append([1,2,3])
>>> a.append('haha')
>>> a
[1, [1, 2, 3], 'haha']
>>> a.count(1)
1
>>> a.append(1)
>>> a.count(1)
2
>>> a.index(1)
0
>>> b = a.copy()
>>> b
[1, [1, 2, 3], 'haha', 1]
>>> a.extend([4,5,6])
>>> a
[1, [1, 2, 3], 'haha', 1, 4, 5, 6]
>>> a.pop()
6
>>> a.pop(1)
[1, 2, 3]
>>> a.pop(1)
'haha'
>>> a.remove(1)
>>> a
[1, 4, 5]
>>> a.remove(1)
>>> a
[4, 5]
>>> a.clear()
>>> a
[]
>>> a = [1,2,5,7,9,3,4,8]
>>> a.reverse()
>>> a
[8, 4, 3, 9, 7, 5, 2, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 7, 8, 9]
>>> a.insert(1, 10)
>>> a
[1, 10, 2, 3, 4, 5, 7, 8, 9]
>>> sorted(a)
[1, 2, 3, 4, 5, 7, 8, 9, 10]
>>> a
[1, 10, 2, 3, 4, 5, 7, 8, 9]
>>> b = reversed(a)
>>> a
[1, 10, 2, 3, 4, 5, 7, 8, 9]
>>> b
<list_reverseiterator object at 0x000001F8A1142240>
>>> for i in b:
... print(i)
...
9
8
7
5
4
3
2
10
1
>>>

字符串(str)方法(使用dir()函数查看对象支持的方法,在魔法方法(双下划线开头和结尾的对象)后的就是可使用的方法了).

>>> a = 'str'
>>> a
'str'
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>>

- str.count(arg): 计算指定元素的出现次数.
- str.endswith(arg): 比较字符串结尾部分字符与指定字符是否相等,是返回True,否返回False.
- str.startswith(arg): 比较字符串开始部分字符与指定字符是否相等,是返回True,否返回False.
- str.find(arg): 返回指定字符的第一个元素的在对象中的第一次出现的索引.
- str.index(arg): 返回指定字符的第一个元素的在对象中的第一次出现的索引.
- str.isalpha(): 如果对象中全是字母字符就返回True,否就返回False.
- str.isdigit(): 如果对象中全是数字字符就返回True,否就返回False.
- str.islower(): 检查是否全为小写,是就返回True,否就返回False.
- str.isupper(): 检查是否全为大写,是就返回True,否就返回False.
- str.lower(): 返回对象转为小写的副本.
- str.upper(): 返回对象转为大写的副本.
- str.replace(arg1, arg2): 将对象中的arg1替换为arg2.
- str.split(arg1, arg2): 分割字符串对象,arg1表示以什么作为分割的标志,arg2表示以arg1标志分割几次;若不给参数则以空格为标志进行分割.

SHOW

>>> a
'asdjadskjaskjfaksfnasnfk'
>>> a.count('j')
3
>>> a.endswith('nfk')
True
>>> a.endswith('asd')
False
>>> a.startswith('nfk')
False
>>> a.startswith('asd')
True
>>> a.find('nfk')
21
>>> a.find('n')
18
>>> a.index('nfk')
21
>>> a.index('n')
18
>>> a
'asdjadskjaskjfaksfnasnfk'
>>> a.isalpha()
True
>>> a.isdigit()
False
>>> a.islower()
True
>>> a.isupper()
False
>>> a
'asdjadskjaskjfaksfnasnfk'
>>> a.lower()
'asdjadskjaskjfaksfnasnfk'
>>> a.upper()
'ASDJADSKJASKJFAKSFNASNFK'
>>> a
'asdjadskjaskjfaksfnasnfk'
>>> a.replace('nfk', 'hello')
'asdjadskjaskjfaksfnashello'
>>> a.split('j',1)
['asd', 'adskjaskjfaksfnasnfk']
>>> a
'asdjadskjaskjfaksfnasnfk'
>>> a.split()
['asdjadskjaskjfaksfnasnfk']
>>> a
'asdjadskjaskjfaksfnasnfk'
>>>

元组(tuple)方法.

>>> a = ()
>>> a
()
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
>>>

tuple的方法比较少.

  • tuple.count(arg): 返回arg在对象中出现的次数.
  • tuple.index(arg): 返回arg在对象中的索引位置.

SHOW

>>> a = (1,2,3,4,6,7,7)
>>> a.count(7)
2
>>> a.index(7)
5
>>>

猜你喜欢

转载自blog.csdn.net/One_of_them/article/details/79464710