Python语法--列表(类似数组)

Python中的列表其实就是java的数组形式,包括使用下标访问都是一致的,唯一不同的是Python存储数据时数据类型可以在一个列表中混用,在遍历以及插入数据等都比较方便。

1.列表定义                                                                                   

1.1 定义一个空列表

list=[] # 定义一个空数组
print(list)
print(type(list))

# 运行结果:
'''
[]
<class 'list'>

 '''

1.2 混合数据类型列表

取出第一个类型为int,第二个类型元素为String

list=[1,"小李"]  #列表里可以混合类型
print(list[0])   # 取列表元素第一个数据
print(type(list[0]))  # 取列表元素第一个数据类型
print(list[1])   # 取列表元素第二个数据
print(type(list[1]))  # 取列表元素第二个数据类型


# 运行结果:
'''
1
<class 'int'>
小李
<class 'str'>

'''

2.列表增加操作                                                                           

2.1  append方式

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]]

2.2 extend

extend是指将任何可迭代的元素添加到当前列表的末尾。

a=[1,2]
b=[3,4]

# 用extend把b列表每个元素都加入到a了
a.extend(b)
print(a)

# 运行结果为:[1, 2, 3, 4]

2.3 insert

在指定位置插入指定元素数据

a=[0,2,4]
a.insert(1,1)
print(a)

#运行结果:[0, 1, 2, 4]

3.列表删除元素                                                                           

3.1 del

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给删除了,切记删除变量后不要使用其变量,

 3.2 pop

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(下标)使用

 3.3 remove

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)

4.列表修改                                                                                   

 通过下标元素直接更改

a=[0,1,2,3,4]
a[0]=5  # 直接通过下标更改
print(a)

运行结果:[5, 1, 2, 3, 4]

5.列表查询                                                                                  

5.1 in,not in  

查询除了遍历以外还有in,not in,判断元素是否存在和不存在的操作

输入一个数字是否存在在a元素里,如果存在进入查找到了数字,否则进入没用查找到数字,

not in 就不说了不存在就怎么样,可以自己测试

a=[0,1,3]
num=int(input("请输入数字:"))
if num in a :
    print("查找到了数字")
else:
    print("没有查找到数字")

运行结果:

 5.2 index

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)) 

 5.3 enumerate函数

通过enumerate函数遍历列表元素,既可以得到列表的元素下标也可以得到列表中的内容

# 通过enumerate枚举函数同时拿到列表中下标和元素内容
info = ["name", "age"]
print(enumerate(info))
for i,data in enumerate(info):
    print(i,data)

# 结果:
'''
0 name
1 age
'''

 6.排序、反转                                                                               

6.1 sort

sort排序

a=[5,8,1,2]
a.sort()     #排序
print(a)

# 结果:[1, 2, 5, 8]

6.2 reverse

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]

7.嵌套数组的使用                                                                       

就是二元数组的使用,通过访问元素的下标,第一个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]]

 还蛮简单的小测验,自己可以试着做下,下期给我自己做的答案!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值