从零开始——Python学习笔记(2019/1/16)

1.列表排序方法:
内置排序 冒泡排序 插入排序 选择排序
希尔排序 堆排 快排 归并排序
……

1)内置排序(2种)
法1:
a=[2,1,3,4,6,5,7,9,8]
b=a.sort()
print(a)
法2:
c=[2,3,4,1,6,0,8,9,5,7]
d=sorted©
print(d)
#根据情况选择方法:原数组有用选第一种,没用选第二组
2)冒泡排序(3种):
#简单冒泡,例1:
a=[5,8,9,3,2]
for i in range(len(a)-1): #外圈循环范围
for j in range(i+1,len(a)):#内圈循环范围
if a[i]>a[j]: #比较
temp=a[i] #临时变量存储
a[i]=a[j]
a[j]=temp
del temp #删除临时地址
print(a)
#复杂冒泡(相邻比较,按升降序判断是否交换位置)
例2:
a=[5,3,2,1,4,6,7,9,8]
for i in range(len(a)-1):
count += 1
for j in range(len(a)-1-i): #注意j+1是否有效
if a[j]>a[j+1]:
temp=a[j]
a[j]=a[j+1]
a[j+1]=temp
del temp
print(a)

#改良冒泡(简化复杂排序,在处理具有一定规律的列表时,简化效果更明显),例3:
a = [5,3,2,1,4,6,7,9,8] #只需排一次:8,9
for i in range(len(a)-1):
flag = False #标记
count += 1
for j in range(len(a)-1-i):
if a[j]>a[j+1]:
temp=a[j]
a[j]=a[j+1]
a[j+1]=temp
del temp
flag = True #标记
if not flag : #结束循环
break
print(a)
3)选择排序
例6:
a = [5,8,9,3,2]
for i in range(0,len(a)-1):#,第一个数默认最小
min_index = i
for j in range(i+1,len(a)):
if a[min_index]>a[j]:
min_index = j
if min_index!= i:
temp = a[i]
a[i]=a[min_index]
a[min_index]=temp
del temp
print(a)
2.列表常用操作
names = [‘a’,‘b’,‘c’,‘d’,’e’]

#1.追加(只能加在末尾,不改变id):append()
names.append(“f”)
print(names)

#2.删除(3种):pop(),remove(),del #仍在原id修改
names.pop()
print(names)

names.remove(“c”) #可指定删除元素
print(names)

del names[2]
print(names)

#3.查找元素所在位置:index()
names1 = [‘a’,‘b’,‘c’,‘d’]
i =names1.index(“a”,0,3) #index(查找元素,起点>=,终点<)
print(i)

#4.统计列表内元素次(个)数:count()
names2 = [‘a’,‘c’,‘b’,‘c’,‘d’,‘c’]
p = names2.count(“c”)
print§

#5.反转:reverse()
names1 = [‘a’,‘b’,‘c’,‘d’]
names1.reverse()
print(names1)

#6.字符串转列表
str1 = “asdfg”
arr = [str(i) for i in str1]
print(arr)

#清空:clear()
names1 = [‘a’,‘b’,‘c’,‘d’]
names1.clear()
print(names1)

#插入:insert()
names1 = [‘a’,‘b’,‘c’,‘d’]
names1.insert(2,“t”) #(位置,插入元素)
print(names1)

#拼接两个列表:extend()
p=[1,2,3]
q=[4,5,6]
q.extend§
print(q) #可知q改变,p没变
print§

#列出所有元素,切片
names1 = [‘a’,‘b’,‘c’,‘d’]
print(names1[::])
print(names1[1:3:-1])#起始,终止,步长
print(names1[:-1])

#复制:copy()
names1 = [‘a’,‘b’,‘c’,‘d’]
b = names1.copy()
print(b)

口诀:
追加删除查位置,计数反转串变表。
清空插入表拼接,复制列举和切片。

字符串方法每日积累:
count(sub[,start[,end]]):返回子字符串sub在字符串x的[start,end]范围内出现的次数,省略范围时默认查找整个字符
例:
a=‘abcabcabc’.count(‘ab’)
print(a)

a=‘abcabcabc’.count(‘ab’,2)
print(a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值