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)