1. 是不是某类型?isinstance
a = 1
b = 0.5
isinstance(a, int)
True
isinstance(b, int)
False
isinstance(b, (int, float))
True
2. 多行字符串——三引号
- 换行占字符
3. 计算某字符个数 c.count(‘a’)
'12345654321'.count('3')
2
4. 转义符
print('\\\\\\')
\\\
5. 时期和日期
-
%Y 四位年
-
%y 两位年
-
%m 月
-
%d 日
-
%H 24小时制的时
-
%I 12小时制
-
%M 两位分钟
-
%S 秒
-
%w 星期几
-
%U 一年中的第几个星期,星期天是每周第一天
-
%W 一年中的第几个星期,星期一是每周第一天
-
%z UTC时区
-
%F 按照‘200-11-17’格式
-
%d 按照‘04/18/12’(m/d/y)
-
改变日期格式,注意大小些分别代表啥
-
把字符串改变成日期对象
-
计算两个时间相差多久
import datetime
from datetime import datetime, date, time
# Y m d - H M S
dt = datetime(2000, 11, 17, 3, 46, 23)
dt
datetime.datetime(2000, 11, 17, 3, 46, 23)
dt.day
17
dt.minute
46
dt.date()
datetime.date(2000, 11, 17)
dt.time()
datetime.time(3, 46, 23)
# 改变格式,注意大小些分别代表啥
dt.strftime(r'%m/%d/%Y %H:%M:%S')
'11/17/2000 03:46:23'
# 把字符串改变成日期对象
datetime.strptime('2012:03:17', '%Y:%m:%d')
datetime.datetime(2012, 3, 17, 0, 0)
dt = dt.replace(minute = 0, second = 0)
dt
datetime.datetime(2000, 11, 17, 3, 0)
# 计算两个时间相差多久
dt1 = datetime(2000, 11, 17, 3, 46, 23)
dt2 = datetime(2012, 3, 17, 11, 46, 23)
delta = dt2 - dt1
delta
datetime.timedelta(days=4138, seconds=28800)
6. 元组
- 转换其他类型到元组
- 元组可加,必须加最后一个逗号
- 元组乘法
- 元组查个数
# 转换其他类型到元组
tuple('abcde')
('a', 'b', 'c', 'd', 'e')
# 元组可加,如果元素只有一个,那么就需要加逗号
test = (4, None, 'mdx') + (5, True) + ('lby',)
test
(4, None, 'mdx', 5, True, 'lby')
# 元组乘法
test * 2
(4, None, 'mdx', 5, True, 'lby', 4, None, 'mdx', 5, True, 'lby')
# 元组查个数
test.count(4)
1
7. 列表
列表一次添加多个元素
x = [5, False, 'hhh']
# 列表一次添加多个元素
x.extend((7, 8, [2, 3]))
x
[5, False, 'hhh', 7, 8, [2, 3]]
列表排序
列表按字符长度排序
sorted可以排序字符串,可以直接变字符串转数组
# 列表按字符长度排序
x = ['a', 'bb', 'yyy', '01']
x.sort(key = len)
print(x)
['a', 'bb', '01', 'yyy']
# sorted可以排序字符串,可以直接变字符串转数组
sorted('I love Hongkong!')
[' ',
' ',
'!',
'H',
'I',
'e',
'g',
'g',
'k',
'l',
'n',
'n',
'o',
'o',
'o',
'v']
# 这个就不行
'I love u'.sort()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/var/folders/9l/fdqtn9lj3mqd1mr7rsbr_qlc0000gn/T/ipykernel_41485/288801555.py in <module>
1 # 这个就不行
----> 2 'I love u'.sort()
AttributeError: 'str' object has no attribute 'sort'
arr = list('Iloveu')
p = arr.sort()
p
列表二分搜索和已排序列表的维护
import bisect
c = [1, 2, 2, 2, 3, 4, 7]
c中,2这个数字应该放到第几位,不会真的插,只返回位置
bisect.bisect(c, 2)
4
把元素插入第几位,真的插进去了
print(bisect.insort(c, 6))
c
None
[1, 2, 2, 2, 3, 4, 6, 6, 7]
切片
利用切片进行数组反转
c[::