列表的定义
数组
存储同一种数据类型的集合 scores = [34,56,90,100…]
列表
列表(打了激素的数组):可以存储任意数据类型
list = [1,1.2,True,'westos']
print(list,type(list))
list2 = [1,1.2,True,'westos',[1,2,3,4]] #列表里面也可以嵌套列表
print(list2,type(list2))
列表的特性
service = [‘http’,‘ftp’,‘ssh’]
索引
正向索引
print(service[0]) ##打印列表的第一个;打印http
反向索引
print(service[-1]) ##打印列表的最后一个;打印ssh
切片
print(service[::-1]) ##反转
print(service[1:]) ##除了列表第一个元素以外的
print(service[:-1]) ##除了最后一个元素
重复
print(service * 3)
连接
service1 = ['mysql','firewalld']
print(service + service1) ##将service和service1两个列表连接起来
成员操作符
print('firewalld' in service) ##返回False
print('ftp' not in service1) ##返回False
列表的练习
假定有下面这样的列表:
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
输出结果为:‘I have fentiao, fendai, fensi and apple.’
题目:输入某年某月某日(yyyy-MM-dd),
判断这一天是这一年的第几天?
列表元素的增加
service = [‘http’,‘ftp’,‘ssh’]
append():追加一个元素到列
service.append('firewalld')
print(service)
extend():拉伸 追加多个元素到列表
service.extend(['mysql','nfs'])
print(service)
insert():在指定索引处插入元素
service.insert(1,'https')
print(service)
pop():弹出列表元素
service = ['http','ftp','ssh'] ##列表中原先的元素
service.pop() ##弹出列表的元素(从最后一个开始弹出)
'ssh' ##执行上述命令会把最后一个元素ssh弹出
service ##此时查看列表元素:只有http和ftp
remove():删除列表元素
service = ['http','ftp','ssh']
service.remove('ftp')
print(service)
a = service,remove('ftp') ##将命令执行结果赋值给a
print(a) ##不存在
从内存种删除一个元素
del service[1]
print(service)
列表元素的查看
service = [‘ftp’,‘http’,‘ssh’,‘http’,‘ftp’,‘mysql’]
print(service.count('ftp)) ##查看元素在列表中出现的次数
print(service.index('ssh')) ##索引元素所在位置,默认返回最小的位置值
print(service.index('ssh',4,7)) ##索引指定范围
默认是按照ASCII码进行排序的
service = service.sort() ##将service列表中的元素从小到大进行排序
service = service.sort(reverse=True) ##将service列表中的元素从大到小进行排序
列表元素的无序排列
random.shuffle(li) ##将生成的li列表进行无序排列
--------------------------------------------------------------
li = list(range(0,101))
print(li)
random.shuffle(li)
print(li)
-------------------------------------------------------------
a = random.shuffle(li)
print(a) ##返回值是None,不是所有随机生成的数值都可以进行赋值
通过索引赋值【
service[0] = 'http' ##通过索引,重新对第一个列表的第一个元素进行赋值
通过切片赋值
service[:2] = ['samba','dns','firewalld'] ##将列表service的前两个元素赋值为samba...
列表的综合练习
有一个列表,其中包括 10 个元素, 例如这个列表是[1,2,3,4,5,6,7,8,9,0],
要求将列表中的每个元素一次向前移动一个位置, 第一个元素到列表的最后,然后输出这个列表。
最终样式是[2,3,4,5,6,7,8,9,0,1]
li = [1,2,3,4,5,6,7,8,9,0]
print(li)
li2 = li.pop(0)
print(li2)
li.append(li2)
print(li)
问题描述:按照下面的要求实现对列表的操作:
产生一个列表,其中有 40 个元素,每个元素是 50 到 100 的一个随机整数
如果这个列表中的数据代表着某个班级 40 人的分数,请计算成绩低于平均分的学生人数
对上面的列表元素从大到小排序并输出li.sort(reverse=True)
import random
score = []
# 循环40次
for count in range(40):
num = random.randint(50,100)
score.append(num)
print('40人的分数为:',score)
sum_score = sum(score)
print(sum_score)
ave_num = sum_score/40
# 将小于平均成绩的成绩找出来 组成新的列表 并求列表的长度
less_ave = []
for i in score:
if i < ave_num:
less_ave.append(i)
long = len(less_ave)
print(long)
print('平均分数为:%.1f' %(ave_num))
print('有%d个学生低于平均分数:'%(long))
score.sort(reverse=True)
print('排序结果:',score)