python0116-3(排序+列表操作)

##排序:
内置排序
冒泡排序
插入排序
选择排序
希尔排序
堆排序
快速排序
归并排序

#内置排序

a = [9,6,8,3,0,2,1,7,4,]
print(id(a))#查询地址,看前后是否一样位置
a.sort()
print(id(a))
print(a)

#根据情况选择方法,(不需要保留原来list)原数组有用选上面,没用选下面

a = [9,6,8,3,0,2,1,7,4,]
b =sorted(a)
print(id(a))
print(id(b))
print(b)
#冒泡(相邻两元素比较)
a= [5,8,9,3,2]
for i in range(len(a)-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
print(a)

#改良冒泡(同eg2,加上flag,可以跳出)

a= [1,2,3,4,5,6,8,9,7]
count = 0    
for i in range(len(a)-1):
    flag = False#加标记,永远是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(count)
print(a)

##列表操作

#追加(在列表后追加)

a = [1,'e',4,'r','t']
a.append("w")
print(a)

#删除:pop,remove,del

names = ['a','b','c','d']
names.pop()  #只删除最后一个元素
names.remove("c")  #删除指定元素(在原有基础上删除)
del names[2]  #按下标删除
print(names)

#查找元素所在位置(下标)

names = ['a','b','c','d']
index = names.index("d")
index = names.index("a",1,2)#(从下标1开始找,a下标是0 ,2是终止位置不包含在内)
print(index)

#统计元素的个数

names = ['a','b','c','d']
count = names.count("c")
print(count)

#反转

names = ['a','b','c','d']
names.reverse()

print(names)

#字符串转列表

str1 = "asdfg"
arr = [str(i) for i in str1]
arr.reverse()#反转
print(arr)

#清空 clear

names = ['a','b','c','d']
names.clear()
print(names)

#插入#这是列表插入,链表效率高

names = ['a','b','c','d']
names.insert(2,"t")
print(names)

#拼接两个列表names.extend§(在空间里新建一个列表导入)

names = ['a','b','c','d']
p = [1,2,3]
names.extend(p)
print(names)
print(p)

#对列表进行切片处理
#列出所有元素
#print(names[::])#(也可以一个:,两个::有默认值)
#列出最一个元素

print(names[-1])

#列出范围中元素
#print(names[1:3])(下标的起点终点但不包括终点)
#复制

b = names.copy()
b.pop()
print(b)
print(names)

#浅表复制copy.copy(a)(Python写的)

import copy
a = ['a','b',[1,2]]
b = copy.copy(a)
a[2].append(3)
print(a)
print(b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值