int常用方法
# bit_length()二进制最少位数
>>> i = 2
>>> i.bit_length()
2
>>> i = 5
>>> i.bit_length()
3
字符串的索引和切片
>>> s = 'abcdef'
>>> s[0]
'a'
>>> s[2]
'c'
>>> s[-1]
'f'
>>> s = 'abcdef'
>>> s[0:1]
'a'
>>> s[2:5]
'cde'
>>> s[:-1]
'abcde'
>>> s[3:]
'def'
>>> s[::2]
'ace'
>>> s[-1::-1]
'fedcba'
# 首字母大写
>>> 'ret'.capitalize()
'Ret'
# 全部大写
>>> 'ret'.upper()
'RET'
# 全部小写
>>> 'Ret'.lower()
'ret'
# 大小写反转
>>> 'Ret'.swapcase()
'rET'
# 每个隔开(特殊字符或者数字)的单词首字母大写(标题)
>>> 'hello world'.title()
'Hello World'
# 判断是否是标题
>>> 'Little Title'.istitle()
True
# 居中,填充字符
>>> 'ret'.center(9)
' ret '
>>> 'error'.center(11, '*')
'***error***'
# 填充
>>> 'ret'.ljust(5, '*')
'ret**'
>>> 'ret'.rjust(5, '*')
'**ret'
>>> 'ret'.zfill(5)
'00ret'
# 连接
>>> '-'.join('123')
'1-2-3'
# 根据对应关系进行替换
>>> m = str.maketrans('aeiou', '12345')
>>> v = 'adkfesd;faisdfjskufjks'
>>> v.translate(m)
'1dkf2sd;f13sdfjsk5fjks'
# \t之前的字符不足8位补空格(默认),超过8位再补8位
>>> 'ret\tter'.expandtabs()
'ret ter'
>>> 'ret\tter'.expandtabs(5)
'ret ter'
# 以什么开头
>>> 'retter'.startswith('ret')
True
>>> 'ret'.startswith('ret', 0, 2)
False
# 以什么结尾
>>> 'retter'.endswith('ter')
True
# 查找在序列中的位置
>>> 'retter'.find('t')
2
>>> 'retter'.find('e', 3, -1)
4
>>> 'retter'.find('a')
-1
# 查找在序列中的位置(找不到报错)
>>> 'retter'.index('e')
1
# 去除空格
>>> ' ret '.strip()
'ret'
>>> ' ret '.lstrip()
'ret '
>>> ' ret '.rstrip()
' ret'
# 去除左右指定字符
>>> '*ret%'.strip('*')
'ret%'
>>> '*r*et%'.strip('%*')
'r*et'
>>> ' *ret % '.strip(' %*')
'ret'
# 计数
>>> 'retter'.count('t')
2
# 分割(不包含分割的元素)
>>> 'hello world !'.split()
['hello', 'world', '!']
>>> 'aretatera'.split('a')
['', 'ret', 'ter', '']
>>> 'hello world !'.rsplit(' ', 1)
['hello world', '!']
# 分割(包含分割元素,只能分三份)
>>> 'retterabc'.partition('t')
('re', 't', 'terabc')
# 按行分割
>>> 'ret\nter\nabc'.splitlines()
['ret', 'ter', 'abc']
# 替换
>>> ' ret '.replace(' ', '')
'ret'
>>> ' retter'.replace('t', 'e')
' reeeer'
>>> ' retter'.replace('t', 'e', 1)
' reeter'
# 判断是否由数字或字母组成
>>> 'abc'.isalnum()
True
>>> '123'.isalnum()
True
>>> 'a123'.isalnum()
True
# 判断只由字母组成
>>> 'abc1'.isalpha()
False
>>> 'abc'.isalpha()
True
# 判断只由数字组成
>>> '123'.isdecimal() # 十进制数
True
>>> '②'.isdigit() # 可以判断特殊的数字②
True
>>> '123'.isdigit()
True
>>> '一'.isnumeric() # 支持中文
True
>>> '陆'.isnumeric()
True
# 判断是否是标识符(数字、字母、下划线)
>>> '_'.isidentifier()
True
>>> '1f'.isidentifier()
False
# 判断小写
>>> 'ret'.islower()
True
# 判断是否是空格
>>> ' '.isspace()
True
# 格式化输出
>>> 'my name is {name}'.format(name='ret')
'my name is ret'
>>> 'my name is {name}'.format(**{'name': 'ret'})
'my name is ret'
>>> '{} to {}'.format('One', 'One')
'One to One'
>>> '{0}, {2}, {1}'.format('one', 'three', 'two')
'one, two, three'
公共方法
>>> len('ret')
3
>>> len('你好')
2
>>> len([1, 2, 3])
3
>>> len({'name': 'ret', 'gender': 'male'})
2
>>> len((1, 2))
2
>>> len({1, 2})
2
>>> 1 in [1, 2, 3]
True
>>> 'a' in 'abc'
True
>>> 'name' in {'name': 'ret', 'gender': 'male'}
True
>>> 3 in (1, 2, 3)
True
>>> 5 not in {1, 2, 3}
True
list的索引
>>> l = ['a', 'bc', 'd']
>>> l[-1]
'd'
>>> l[-1:0:-1]
['d', 'bc']
>>> l[2:]
['d']
# 追加
>>> l = []
>>> l.append(1)
>>> l.append('ret')
>>> l
[1, 'ret']
# 取值
>>> [1, 2, 2, 3, ['123']][4][0][1]
'2'
# 浅拷贝
>>> [1, 2, 3].copy()
[1, 2, 3]
# 插入
>>> l.insert(0, 0)
>>> l
[0, 1, 'ret']
# 拓展
>>> l.extend('abc')
>>> l
[0, 1, 'ret', 'a', 'b', 'c']
# 删除
>>> l.pop() # 默认删除最后一个
'c'
>>> l
[0, 1, 'ret', 'a', 'b']
>>> l.pop(1) # 根据索引删除
1
>>> l
[0, 'ret', 'a', 'b']
>>> del l[0] # 根据索引删除
>>> l
['ret', 'a', 'b']
>>> l.remove('a') # 按值删除
>>> l
['ret', 'b']
# 清空
>>> l.clear()
>>> l
[]
# 删除
>>> l = [1, 2, 3]
>>> l
[1, 2, 3]
>>> del l
>>> l
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'l' is not defined
# 切片删除
>>> l = [1, 2, 3, 4, 5, 6]
>>> del l[2:-1]
>>> l
[1, 2, 6]
# 修改
>>> l[0] = [1, 2, 3]
>>> l
[[1, 2, 3], 2, 6]
# 切片修改
>>> l[0:2] = 'abc'
>>> l
['a', 'b', 'c', 6]
>>> l[0:2] = '12345'
>>> l
['1', '2', '3', '4', '5', 'c', 6]
# 排序(同类型)
>>> l.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str()
>>> l.pop()
6
>>> l.sort()
>>> l
['1', '2', '3', '4', '5', 'c']
>>> l.sort(reverse=True)
>>> l
['c', '5', '4', '3', '2', '1']
# 反转
>>> l.append(0)
>>> l
['c', '5', '4', '3', '2', '1', 0]
>>> l.reverse()
>>> l
[0, '1', '2', '3', '4', '5', 'c']
# 查找
>>> l = [0, '1', '2', '3', '4', '5', 'c']
>>> l.index('c')
6
# 计数
>>> l.count('5')
1
>>> l.count(1)
0
元组(tuple)称为只读列表,只能查询,不能修改。
# 取值
>>> t = (1, 2, 'abc', True)
>>> t[1]
2
# 切片
>>> t[0:2]
(1, 2)
# 计数
>>> t.count('abc')
1
# 索引
>>> t.index(2)
1
字典(key必须不可变类型, value任意数据)
>>> d = {
... 'k1': 18,
... 2: True,
... 'k3': [11, 22, 33, {
... 'kk1': 1,
... 'kk2': 2,
... 'kk3': (11, 22)
... }
... ]
... }
>>> d['k3'][3]['kk3'][0]
11
# 增
>>> d = {'name': 'ret', 'gender': 'male'}
>>> d
{'gender': 'male', 'name': 'ret'}
>>> d['age'] = 18
>>> d
{'gender': 'male', 'age': 18, 'name': 'ret'}
# 有key不做任何改变,返回value,没有添加
>>> d.setdefault('weight')
>>> d
{'gender': 'male', 'age': 18, 'name': 'ret', 'weight': None}
>>> d.setdefault('name', 'ter')
'ret'
>>> d
{'gender': 'male', 'age': 18, 'name': 'ret', 'weight': None}
# 根据序列生成字典
>>> dict.fromkeys(['k1', 'k2', 'k3'], 123)
{'k1': 123, 'k3': 123, 'k2': 123}
# 删
>>> d.pop('age') # 返回删除key的value
18
>>> d
{'gender': 'male', 'name': 'ret', 'weight': None}
>>> d.pop('abc', None) # 删除没有key,可设置返回值
>>> d.popitem() # 随机删,并以元组形式返回key, value
('gender', 'male')
>>> d
{'name': 'ret', 'weight': None}
>>> del d['weight'] # 根据key删除
>>> d
{'name': 'ret'}
# 清空
d.clear()
# 改
>>> d = {'name': 'ret', 'gender': 'male'}
>>> d['name'] = 'ter'
>>> d
{'gender': 'male', 'name': 'ter'}
# 更新(不存在的添加,有的更新)
>>> d1 = {'name': 'ret', 'age': 18}
>>> d2 = {'name': 'ter', 'gender': 'male'}
>>> d2.update(d1)
>>> d2
{'gender': 'male', 'age': 18, 'name': 'ret'}
# 查
>>> d.keys() # key的序列
dict_keys(['gender', 'name'])
>>> d.items() # key, value元组的序列
dict_items([('gender', 'male'), ('name', 'ter')])
>>> d.values() # value的序列
dict_values(['male', 'ter'])
# 取值
>>> d['name']
'ter'
>>> d.get('name')
'ter'
>>> d.get('ret')
>>> d.get('ret', 'none')
'none'
其他(for, enumerate, range)
# 遍历字典
>>> d = {'name': 'ret', 'gender': 'male'}
>>> for i in d:
... print(i)
...
gender
name
# 遍历列表
>>> for i in [1, 3, 6]:
... print(i)
...
1
3
6
# 遍历字符串
>>> for i in 'ret':
... print(i)
...
r
e
t
# 遍历元组
>>> for i in (1, 2, 3):
... print(i)
...
1
2
3
# 遍历集合
>>> for i in {'red', 'green', 'blue'}:
... print(i)
...
green
blue
red
>>> for i in enumerate(['name', 'age', 'gender']):
... print(i)
...
(0, 'name')
(1, 'age')
(2, 'gender')
>>> for i in enumerate('abc', 100): # 可以指定起始值
... print(i)
...
(100, 'a')
(101, 'b')
(102, 'c')
>>> for i in range(1, 5):
... print(i)
...
1
2
3
4
>>> for i in range(1, 5, 2): # 指定步长
... print(i)
...
1
3