python的数据结构
1. 列表
2. 元组
3. 字典
4. 集合
列表
list1 = [1,'小王','98'] #列表中可以存储混合类型
#print(type(list1[0]))
#print(type(list1[1]))
for n in list1 : #遍历列表
print(n)
print(len(list1))
i=0 #遍历列表
while i <= 2 :
print(list1[i])
i += 1
对列表进行操作(增、删、改、查)
增
#增
#list.append '在原列表末尾增加元素'
#list.extend '在原列表末尾增加一个新列表,构成一个新列表'
#list.insert '在原列表的某位上增加某个元素'
list = ['小李','小王','小孙']
print('-----原列表-----')
for name in list :
print(name)
print('-----变化后的列表-----')
list.append('小谭')
for name in list :
print(name) #list.append
list = ['小李','小王','小孙']
print('-----原列表-----')
for name in list :
print(name)
print('-----变化后的列表-----')
list.extend(['小花','小明'])
for name in list:
print(name) #list.extend
list = ['小李','小王','小孙']
print('-----原列表-----')
for name in list :
print(name)
print('-----变化后的列表-----')
list.insert(1,'小兵张嘎') #第一个表示下表(默认从0开始数),第二个是添加的内容
for name in list :
print(name) #list.insert
删
#删
#del kemu[2] '删除下表为2的元素'
#kemu.pop() '删除列表的最后一个元素'
#kemu.remove('高数') '删除第一个指定的内容(下标最小的那个)'
kemu = ['高数','英一','政治','英一']
print('--原列表--')
for name in kemu :
print(name)
print('--变后列表--')
#del kemu[2] #删法一
#kemu.pop() #删法二
kemu.remove('高数') #删法三
for name in kemu :
print(name)
改
#改
#kemu[3]='自控' '直接对指定下表进行修改,再赋值即可'
kemu = ['高数','英一','政治','英一']
print('--原列表--')
for name in kemu :
print(name)
print('--变后列表--')
kemu[3]='自控' #直接赋值指定下表位置修改
for name in kemu :
print(name)
查
#查
#in 在列表中?返回值为true或fault
#not in 不在列表中?返回值为true或fault
#kemu.index('元素',起始范围,截止范围) 可以查找指定下标范围的元素,并返回找到的下标位置
kemu = ['高数','英一','政治','英一']
findkemu = input('请输入需要查找的科目:')
if findkemu in kemu : #用if判断!
print('您查找的科目在这个范围里')
else :
print('不在范围内')
kemu = ['高数','英一','政治','英一']
print(kemu.index('政治',1,3)) #若能在[1,3)找到,则返回元素在列表的下标
print(kemu.index('自控',1,3)) #若找不到,则会报错,无法执行后续内容
排序
#排序
# a.reverse() #反转
# a.sort() #升序
# a.sort(reverse = True) #降序
a = [1,3,7,5,9]
print(a)
a.reverse() #反转
print(a)
a.sort() #升序(排序)
print(a)
a.sort(reverse = True) #降序(排序)
print(a)
二维列表
#二维列表
school = [['清华','北大'],['上交'],['复旦','浙大','南大']]
print(school[2][1])
列表练习实例
#实例
#一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
office = [[],[],[]]
teacher = 'a','b','c','d','e','f','g','h'
import random
for name in teacher :
gongwei = random.randint(0,2)
office[gongwei].append(name)
i = 1
for ok in office : #二维列表时,按维数遍历的,!!!不是一个一个遍历(即先遍历一维列表)
print('办公室%d有%d个人'%(i,len(ok))) #此时的ok为一维列表
i += 1
print(ok)