列表,元组和字典

列表:


#列表的定义一般分静态和动态赋值
a=[1,2,3,4,5]
b=list()
b.append(1)
b.append(2)
b.append(3)
b.append(4)
b.append(5)
a.insert(0,6)#插入,0指下标,6是插入的值
#追加时(即用insert()),如果没有这个下标,编辑器会自动帮你纠正
#如果大于长度范围,默认尾部追加
#如果第一个参数为负数,则是从尾部向前查找
#例:
a.insert(8,7)#这里没有8下标,他会自动放在下标6的位置
print(a)#[6, 1, 2, 3, 4, 5, 7]
a.insert(-1,8)#负数从后向前找,放在下标倒数第二个位置
print(a)#[6, 1, 2, 3, 4, 5, 8, 7]
#以上并不适用a[index],当index为单个参数如果越界,会触发异常。多个参数不会
print(a[::-1])#逆序输出

print(b)#[1, 2, 3, 4, 5]
b.remove(1)#从列表中移除第一个匹配的值
print(b)#[2, 3, 4, 5]
b.pop(1)#按下标移除对应的值
print(b)#[2, 4, 5]
#更改:
b[1]=22
print(b)#[2, 22, 5]
#获取数组长度,避免越界异常:len()
print(len(a))#8
print(len(b))#3
#记录某个值的个数:count(值)
print(a.count(6))#1
print(a.count(100))#0
#数组追加:extend
a.extend(b)
print(a)#[6, 1, 2, 3, 4, 5, 8, 7, 2, 22, 5]
#数组排序:sort
print(a)#[6, 1, 2, 3, 4, 5, 8, 7, 2, 22, 5]
a.sort()#正序
print(a)#[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 22]
a.sort(reverse=True)#倒序
print(a)#[22, 8, 7, 6, 5, 5, 4, 3, 2, 2, 1]

#用循环打印数组
print("[",end="")
for i in a:
    print(i,",",end="")
print("\b]")
#[22 ,8 ,7 ,6 ,5 ,5 ,4 ,3 ,2 ,2 ,1 ]

#循环改变列表值:
for i in range(len(a)):
    a[i]+=2#a列表的值依次加2
print(a)

#用list()进行转型,参数中[5]不能代表一个列表,但[5,]可以代表
c=list((5,5,6))
print(c)#[5, 5, 6]
d=list((5,))
print(d)#[5]

del a[0]#删除第一个元素
del a#删除a列表

#列表的嵌套,不建议超过3层
d=[[1,2,3],[4,0],[5,6,7,8],[1]]
print(d)#[[1, 2, 3], [4, 0], [5, 6, 7, 8], [1]]
print(d[1][0])#4

元组:

#元组是一个不可变的序列
#元组一般保存列表或其他可变的序列的最终结果
#元组没有增删改,效率高
a=(6,2,5,4,5)
print(a)#(6, 2, 5, 4, 5)
print(a[::-1])#(5, 4, 5, 2, 6)
print(a[1::-1])#(2, 6)

字典:

#字典:元素是一对k—v键值对,是一种存储数据的容器
a={"name":"张三","age":18,"height":180}
b={"1":66,2:33,3:89,8:10}#print(b[0])会报错
#用get()获取
print(b.get(2))#66
print(b.get("1"))#66
print(b.get(10))#10
#clear清空字典,内存,空字典仍在
#del删除字典部分内容
c={"user1":a,"user2":b}
print(c.get("user1").get("age"))#18
a["class_name"]="cloud01"
a.pop("age")
print(a)#{'name': '张三', 'height': 180, 'class_name': 'cloud01'}
#a.popitem()#删除最后一个k-v
#a.update({"class_name":"clound03","abc":123})#批量更新
k=a.keys()
print(k)#dict_keys(['name', 'height', 'class_name'])里面是列表
#常用的遍历方式
for key in k:
    print(key)
    print("--",a.get(key))

for k,v in a.items():
    print(k,v)

d=[k.upper() for k,v in a.iteams() if k!='张三']
#中括号代表输出的是列表,中括号内的含义:
# for k,v in a.iteams():
#     if k!='张三':
#         k.upper()

列表三种排序方式:

import random
lt=list()
for i in range(10):
    lt.append(random.randint(20,100))
print(lt)

#选择排序
for i in range(len(lt)-1):
    min=lt[i]
    minIndex=i
    for j in range(i+1,len(lt)):
        if min>lt[j]:
            min=lt[j]
            minIndex=j
    else:
        lt[minIndex]=lt[i]
        lt[i]=min
print(lt)

#冒泡排序:从前向后,两个相邻元素依次比较,不符合顺序的,两者交互位置
#每一轮能确定最大值,全部运行就有序了
for i in range(len(lt)-1):
    flag=False
    for j in range(len(lt)-i-1):
        if lt[j]>lt[j+1]:
            tmp = lt[j]
            lt[j]=lt[j+1]
            lt[j+1]=tmp
            flag=True
    if not flag:
        break
print(lt)

#插入排序:
#在有序列表中插入一个新元素的逻辑
a=[10,20,30,40,50,60]
num=int(input("请输入一个正整数:"))
a.append(0)
index=len(a)-2
flag=False
while index>=0:
    if num<a[index]:
        a[index+1]=a[index]
    else:
        a[index+1]=num
        flag = True
        break
    index-=1
if not flag:
    a[0]=num
print(a)
#插入排序:即从第一个元素开始,后面所有的元素都使用插入4逻辑写入,则全部排完一定有序
for i in range(1,len(lt)):
    index=i-1
    num=lt[i]
    flag=False
    while index>=0:
        if num<lt[index]:
            lt[index+1]=lt[index]
        else:
            lt[index+1]=num
            flag=True
            break
        index-=1
    if not flag:
        lt[0]=num
print(lt)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值