Python中的列表其实就是java的数组形式,包括使用下标访问都是一致的,唯一不同的是Python存储数据时数据类型可以在一个列表中混用,在遍历以及插入数据等都比较方便。
1.1 定义一个空列表
- list=[] # 定义一个空数组
- print(list)
- print(type(list))
-
- # 运行结果:
- '''
- []
- '''
1.2 混合数据类型列表
取出第一个类型为int,第二个类型元素为String
- list=[1,"小李"] #列表里可以混合类型
- print(list[0]) # 取列表元素第一个数据
- print(type(list[0])) # 取列表元素第一个数据类型
- print(list[1]) # 取列表元素第二个数据
- print(type(list[1])) # 取列表元素第二个数据类型
-
-
- # 运行结果:
- '''
- 1
- 小李
- '''
append追加数据方式
定义一个名字列表,默认有小王,小李,通过append向后追加小张,增加前遍历打印数组元素,追加后再遍历打印数组元素
- namelist=["小王","小李"]
- print("----------增加前,名单列表的数据-----------------")
- for name in namelist:
- print(name)
-
- namelist.append("小张")
-
- print("----------增加后,名单列表的数据-----------------")
- for name in namelist:
- print(name)
-
-
-
- 运行结果:
- '''
- ----------增加前,名单列表的数据-----------------
- 小王
- 小李
- ----------增加后,名单列表的数据-----------------
- 小王
- 小李
- 小张
- '''
append数组追加数组
会把列表结果嵌套到一起
- a=[1,2]
- b=[3,4]
- a.append(b)
- print(a)
-
-
- #运行结果: [1, 2, [3, 4]]
extend是指将任何可迭代的元素添加到当前列表的末尾。
- a=[1,2]
- b=[3,4]
-
- # 用extend把b列表每个元素都加入到a了
- a.extend(b)
- print(a)
-
- # 运行结果为:[1, 2, 3, 4]
在指定位置插入指定元素数据
- a=[0,2,4]
- a.insert(1,1)
- print(a)
-
- #运行结果:[0, 1, 2, 4]
del可以删除某个元素,也可删除变量,删除整个列表则访问变量名称也会报错,
下面例子删除下标为1的参数也就是列表中的第二个,删除前打印数据,删除后在打印下列表数据
-
- a=[0,1,2,3,4]
- print("----------删除前,列表的数据-----------------")
- for num in a:
- print(num)
-
- del a[1] # del删除指定下标的数据
-
- print("----------删除后,列表的数据-----------------")
- for num in a:
- print(num)
1就被删除掉了
我们把变量a列表删除掉,del a
- a=[0,1,2,3,4]
- del a
- print("----------删除前,列表的数据-----------------")
- for num in a:
- print(num)
在for循环使用a的时候直接报错了,没有定义a变量,其实是del给删除了,切记删除变量后不要使用其变量,
pop没有指定索引则默认弹出末尾最后一个元素,否则删除指定索引
- a=[0,1,2,3,4]
- print("----------删除前,列表的数据-----------------")
- for num in a:
- print(num)
-
- a.pop() #弹出末尾最后一个元素
-
- print("----------删除后,列表的数据-----------------")
- for num in a:
- print(num)
结果则把最后一个元素删除,如果指定下标,则a.pop(下标)使用
remove可指定删除某个数据中的元素,如果集合中存在一模一样的元素数据,则只删除前面部分
- a=[0,1,2,3,4,3]
- print("----------删除前,列表的数据-----------------")
- for num in a:
- print(num)
-
- a.remove(3) # 移除指定元素,两个重复元素,只删除前面的一个
-
-
- print("----------删除后,列表的数据-----------------")
- for num in a:
- print(num)
通过下标元素直接更改
- a=[0,1,2,3,4]
- a[0]=5 # 直接通过下标更改
- print(a)
-
- 运行结果:[5, 1, 2, 3, 4]
查询除了遍历以外还有in,not in,判断元素是否存在和不存在的操作
输入一个数字是否存在在a元素里,如果存在进入查找到了数字,否则进入没用查找到数字,
not in 就不说了不存在就怎么样,可以自己测试
- a=[0,1,3]
- num=int(input("请输入数字:"))
- if num in a :
- print("查找到了数字")
- else:
- print("没有查找到数字")
运行结果:
index查找指定元素出现在哪个下标,返回对应的下标,如下查找a在0下标到3(左闭右开)下标下的数据是否存在a,注意是左闭右开的,所以左边下标准确,右边数字则往前加一个下标则才能得到你想要的结果,优先返回前面范围的结果
- a=["a","b","c","d","a","t"]
- print(a.index("a",0,4)) # 查询指定下标范围,并返回找到数据对应的下标,左闭右开[1,-3)
-
- # 结果:返回0
从1下标找到4下标,就会报错,b,c,d里没有a,
- a=["a","b","c","d","a","t"]
- print(a.index("a",1,4))
通过enumerate函数遍历列表元素,既可以得到列表的元素下标也可以得到列表中的内容
- # 通过enumerate枚举函数同时拿到列表中下标和元素内容
- info = ["name", "age"]
- print(enumerate(info))
- for i,data in enumerate(info):
- print(i,data)
-
- # 结果:
- '''
- 0 name
- 1 age
- '''
sort排序
- a=[5,8,1,2]
- a.sort() #排序
- print(a)
-
- # 结果:[1, 2, 5, 8]
reverse反转,可以通过sort指定参数进行反转,也可直接调用reverse方法反转,reverse反转元素顺序,通过sort(reverse=True)则将对列表进行降序排序
- a=[5,8,1,2]
- a.reverse() #反转
- print(a)
-
- # 结果:[2, 1, 8, 5]
- a=[5,8,1,2]
- a.sort(reverse=True) #反转
- print(a)
-
- # 结果:[8, 5, 2, 1]
就是二元数组的使用,通过访问元素的下标,第一个schoolNames[0]则获取第一组全部数据,schoolNames[0][1]则获取第一组第一个数据
- # 嵌套数组的使用
- schoolNames=[["北京大学","清华大学"],["南开大学","天津大学",],["再次一点大学","一组"]]
- print(schoolNames[0])
- print(schoolNames[0][1])
结果:
课堂练习:
现有三个办公室,随机分配人员进入不同的房间
1.首先要有0-2的随机数,需要导入随机数库,代表3个房间
2.定义办公室,定义进入办公室的人员
3.随机分配时把人员追加到办公室变量里,最后循环下房间变量
代码如下:
- # 随机分配人员进入不同的房间
- import random
- offices=[[],[],[]] # 定义办公室
- names=["小张","小王","小李","小杜","小钱","小木","小刘","小赵"] # 定义人员
-
- # 遍历人员信息
- for name in names:
- index=random.randint(0,2) # 生成0-2的随机数,0是第一个房间,1是第二个房间,2是第三个房间
- offices[index].append(name) # 往房间添加人员
-
-
- i=1
- for office in offices:
- print("办公室%d人数为:%d"%(i,len(office))) # 获取二元数组每组办公室的人员数量(通过len获取长度)
- i=i+1
- for name in office:
- print("%s"%name,end="\t") # 循环获取每个办公室里的人员数据
- print("\n")
- print("-"*20)
运行结果为:
给你一组商品数据,打印如下的商品列表,让用户输入选择的商品编号,用户输入q则结束选择,并把用户购买的信息打印如下:
商品信息列表:
products = [["iphone", 6888], ["MacPro", 14888], ["小米6", 2499], ["Book", 60], ["Nike", 690]]
还蛮简单的小测验,自己可以试着做下,下期给我自己做的答案!