总结
双重循环
- 冒泡排序
lt = [1, 5, 7, 3, 2, 4]
# 计算元素的个数
n = len(lt)
# 外层循环控制圈数
for i in range(n-1):
for j in range(n-1-i):
# 不合适,交换数据
# 此处是升序排序,若想降序需要将 > 改为 <
if lt[j] > lt[j+1]:
# 其他语言
# temp = lt[j]
# lt[j] = lt[j+1]
# lt[j+1] = temp
# python特有
lt[j], lt[j+1] = lt[j+1], lt[j]
print(lt)
- 选择排序(练习)
思想:
取出第一个元素,依次与后面的元素进行比较,不合适交换位置,直至比较结束,一轮可以确定开头一个
每轮确定一个元素,依次向后,n个元素需要n-1轮比较
示例:lt = [3, 5, 2, 1, 8, 4]
第一轮:1 5 3 2 8 4
第二轮:1 2 5 3 8 4
第三轮:1 2 3 5 8 4
提示:仍然使用双重循环进行解决,外层循环控制循环多少轮,内心循环控制元素比较
数据类型
- 集合
添加:add
删除:
remove,元素存在就删除,不存在就爆粗
discard,元素存在就删除,不存在也不保存
pop,随机弹出一个元素,返回后删除元素
清空:clear
并集:union
交集:
intersection:不改变原集合
intersection_update:使用交集更新原集合
差集:
difference:不会改变原集合
difference_update:使用差集更新原集合
判断:
isdisjoint:是否没有交集
issubset:是否是另一集合的子集
issuperset:是否是另一集合的超集(父集)
- 字典
获取:
d[key]:根据键获取值,不存在时或报错
d.get(key, '默认值'):不存在时默认返回None,也可以指定默认值
更新:
d[key] = value 键存在就更新,不存在就添加
d.update(d2) 将字典d2中的键值对依次添加到d中,已经存在的键会覆盖
删除:
del d[key]
d.pop(key) 返回删除的值
清空:clear
所有键:keys 返回可迭代对象
所有值:values 返回可迭代对象
- 字符串
join:拼接
split:切割,从左边
rsplit:从右边切割
splitlines:按照换行符切割
自行测试:
find:查找第一次出现指定字符串的位置,没有时返回-1
rfind:从右边开始查,返回第一次出现的位置
upper:全大写
lower:全小写
swapcase:大小写转换
capitalize:首字符大写
title:每个单词首字母大写
count:统计某个字符串出现的次数
startswith:是否以指定字符串开头
endswith:是否以指定字符串结尾
istitle:是否每个单词首字母大写
islower:是否是全小写
isupper:是否是全大写
isdecimal:是否是数字
isalpha:是否是字母
isalnum:是否是数字或字母