python 数组

一、数组(list)

7.1数组的知识

 

上面案例的问题

重复 类代的代码很多

如果有10个学生、一百个学生。。。

数学中的数组(数列)

X = A1+A2+A3

程序中也有数组

A[1]

7.2变量的本质

变量的本质,就是一个储存空间,是一个地址

一个宿舍

数组的本质,一段连续的内存空间

一层宿舍,每个房间有编号[从0开始的]

7.3定义与基本使用

#(1)定义
list = [] #定义一个空列表
listName = ["张三丰","王麻子","李四","李四"] #定义列表,储存了3个元素

##(2)获取列表中值
print("获取列表中第一个值:%s"%(listName[0]))

##(3)获取索引(下标)
print("李四的索引(下标):%s"%(listName.index("李四")))#若果有多个,找第一个

#ValueError:'李阳' is not in list,找不到会报错
#print("李阳的索引(下标):%s"%(listName.index("李阳")))

##(4)修改 列表中的值
listName[3] = "李阳"
print("李阳的索引(下标):%s"%(listName.index("李阳")))

##(5)  添加
###5.1 append在尾部添加
listName.append("隔壁老王")
print(listName)

##5.2insert 添加 inert(索引,需要插入的值)
listName.insert(1,"小姐姐")
print(listName)



###5.3 extend扩展,A.exrend(B,将B列表中元素放到A的后面
list2 = ["猴哥","八戒","沙僧"]
listName.extend(list2)
print(listName)

##(6)删除
###6.1remove:删除列表中具体的值
listName.remove("八戒")
print(listName)

###6.2 pop(),把尾部元素删除
listName.pop()
print(listName)

###6.3 pop(2),指定 索引 的删除
listName.pop(2)
print(listName)

###6.4清空
# listName.clear()
# print(listName)

##(7) 列表的长度(元素的个数)
print("统计 小姐姐 的个数%d" % (listName.count("小姐姐")))

print("统计 列表 长度%d" % (len(listName)))

##(8) 删除 del,清空内存空间
print(listName)
del  listName[1]
print(listName)

a = 18
del a

 

7.4列表的遍历(一个一个)

listName = ["张三丰","李四","李子明","炼铜"]

#遍历列表中所有元素
print("*"*20)
for i in listName:
    print(i)
print("*"*20)
##通过 下标(索引)获取值
for i in range(0,len(listName)):
    print("第%d -> %s"%(i,listName[i]))

 

7.5数组的利用(面试问得多)

7.5.1元素的互换

a = input("请输入a:")
b = input("请输入b:")

print("a = %s;b = %s"%(a,b))

c = a #先将 a 临时放入 c
a = b ##再把 b 放到 a的位置
b = c ###从c中 把 a 放到 b的位置

print("a = %s;b = %s"%(a,b))

 

7.5.2冒泡排序法

7.5.3选择排序

"""
选择排序
    原始:  22、11、33、66、88、44、55
    第一趟:找出最大值88,下标5。从[1,6]中找;最后一个下标 6
            22,11,33,66,55,44,88
    第二趟:找出最大值88,下标5。从[1,6]中找;最后一个下标 6
            22,11,33,44,55,66,88
    第三趟:找出最大值88,下标5。从[1,6]中找;最后一个下标 6
            22,11,33,44,55,66,88
    第四趟:找出最大值88,下标5。从[1,6]中找;最后一个下标 6
            22,11,33,44,55,66,88
    第五趟:找出最大值88,下标5。从[1,6]中找;最后一个下标 6
            11,22,33,44,55,66,88
    最多换位置:n-1
"""
list = [22,11,33,66,88,44,55]
for i in range(0, len(list)):##循环次数


    #找出最大值
    t = list[0]#假设第一个最大
    index = 0##最大值的索引
    for j in range(1, len(list)-i):
        if list[j] > t:
            t = list[j]
            index = j

    ##把最大值放到最后面
    last = len(list)-1-i ##最后一个值的下标
    list[index] = list[last]
    list[last] = t

print(list)

上一篇:88. 合并两个有序数组


下一篇:excle 根据单位、岗位、成绩 等排名