一.列表:

数组:存储同一种数据类型的集合 score=[12,13,14]
列表(被称为打了激素的数组):可以存储任意数据类型的集合(一个变量中可以存储多个信息)
#列表里面也可以嵌套列表(列表也是一种数据类型)

1.列表的特性:

索引
print service[0]
print service[-1]

python字典列表元组集合增删改查_数据类型


切片
print service[::-1] #列表的翻转
print service[1:]  #除了第一个元素的其他元素
print service[:-1]

python字典列表元组集合增删改查_数据类型_02


重复
print service * 3

python字典列表元组集合增删改查_用户信息_03


连接
print service + service1

python字典列表元组集合增删改查_python字典列表元组集合增删改查_04


成员操作符
print 'firewalld' in service
print 'firewaldd' not in service
#显示的是True和False

python字典列表元组集合增删改查_元组_05


for循环遍历
print '显示服务'.center(50,'*')
for se in service
print se

python字典列表元组集合增删改查_用户信息_06

列表中嵌套列表
索引
例如:
service = [['http',80],['ssh',22],['ftp',21]]
print service[0][1]

python字典列表元组集合增删改查_元组_07


切片
例如:
print service[:][1]
print service[:-1][0]
print service[0][:-1]

python字典列表元组集合增删改查_python字典列表元组集合增删改查_08

2.列表的增加:

方法一:print service + ['firewalld']

python字典列表元组集合增删改查_数据类型_09


方法二:service.append('firewalld')
                 print service
#append:追加,追加一个元素到列表的结尾

python字典列表元组集合增删改查_python字典列表元组集合增删改查_10


方法三:service.extend(['mysql','firewalld'])
#extend:拉伸,追加多个元素到列表的结尾

python字典列表元组集合增删改查_python字典列表元组集合增删改查_11


方法四:service.insert(1,'samab')
#insert:插入,在制定索引位置添加元素

python字典列表元组集合增删改查_数据类型_12

3.列表的删除:

方法一:print service.pop()  
      print service.pop(0)  #传递索引值
#如果pop()不传递值的时候,默认弹出最后一个元素

python字典列表元组集合增删改查_用户信息_13

方法二:service.remove('ssh')
#remove:删除指定元素

python字典列表元组集合增删改查_用户信息_14

方法三:del service
#del:是一个关键字,从内存中删除整个列表

python字典列表元组集合增删改查_python字典列表元组集合增删改查_15

4.列表的修改:

方法一:service[0] = 'mysql'
print service
#通过索引,重新赋值

python字典列表元组集合增删改查_数据类型_16

方法二:service[:2] = ['XX','YY'] #把列表的前两个元素替换成XX和YY
print service
#通过切片

python字典列表元组集合增删改查_数据类型_17

5.列表的查看:

方法一;print service.count('XX')
查看列表中XX元素出现的次数

python字典列表元组集合增删改查_python字典列表元组集合增删改查_18

方法二:print service.index('XX')
查看指定元素的索引值(最小)

python字典列表元组集合增删改查_元组_19

6.列表的排序

方法一:service.sort()
                 print service
#按照Ascii码进行排序,先排大写字母再排小写字母

python字典列表元组集合增删改查_元组_20


方法二:service.sort(reverse=True)
               print service
##按照Ascii相反的顺序进行排序

python字典列表元组集合增删改查_python字典列表元组集合增删改查_21


方法三:service.sort(key=str.lower)或service.sort(key=str.upper)
                 print service
#排序时不区分大小写

python字典列表元组集合增删改查_元组_22


方法四:random.shuffle(service)
                  print service
 #将原有的列表顺序打乱
将生成的随机数排序;
 import random
 li = list(range(10))v
 print li

python字典列表元组集合增删改查_元组_23

python字典列表元组集合增删改查_用户信息_24

练习:

1.用户管理系统
1).系统里有用户,用户有密码
     users = ['root', 'westos']
     passwds = ['123', '456']
 2).用户登陆(判断登陆是否成功)
    (1)判断用户是否存在
    (2)如果存在:
         判断用户密码是否正确:先找出用户对应索引,
         然后根据passwds【索引值】
         如果正确:登陆成功,退出
         如果不正确:重新登陆,(机会只有三次)
    (3)如果不存在:
         重新登陆(机会只有三次)

python字典列表元组集合增删改查_用户信息_25

users = ['root', 'westos']
 passwds = ['123', '456']for i in range(3):
     user = raw_input("用户名:")
     passwd = raw_input("密码:")
     i += 1
     if user in users:
         index1 = users.index(user)  # 找到用户对应索引值
         index2 = passwds[index1]
         if index2 == passwd:
             print '登陆成功'
             break
         else:
             print '密码错误,你还有%d次机会' % (3 - i)
     else:
         print '没有该用户,你还有%d次机会' % (3 - i)
 else:
     print '请稍后再试'

python字典列表元组集合增删改查_用户信息_26

 

2.后台管理前台会员信息

1).后台管理员只有一个用户:admin 密码:admin
2).当管理员登陆成功后,才可以管理用户信息
3).管理用户信息包括:
    添加用户信息
    删除用户信息
    查看用户信息
    退出

python字典列表元组集合增删改查_元组_27

python字典列表元组集合增删改查_用户信息_28

python字典列表元组集合增删改查_元组_29

print '管理员登陆'.center(50, '*')
 inuser = raw_input('UserName:')
 inpasswd = raw_input('Password:')# 现存用户名和密码
 users = ['root', 'westos']
 passwds = ['123', '456']if inuser == 'admin' and inpasswd == 'admin':
     print '管理员登陆成功'
     print '用户信息管理'.center(50, '*')    while True:
         print """
         1 -添加用户信息
         2 -删除用户信息
         3 -查看用户信息
         4 -退出
         """
         choice = raw_input('请选择:')        if choice == '1':
             print '添加用户信息'.center(50, '*')
             add_user = raw_input('添加用户:')
             if add_user in users:
                 print '用户%s已经存在' % add_user
             else:
                 add_passwd = raw_input('请输入密码:')
                 # 把用户名和密码添加到列表中
                 users.append(add_user)
                 passwds.append(add_passwd)
                 print '添加用户%s成功' % add_user        elif choice == '2':
             print '删除用户信息'.center(50, '*')
             del_user = raw_input('删除用户:')
             if del_user in users:
                 index = users.index(del_user)
                 users.remove(del_user)
                 passwds.pop(index)
                 print '删除用户%s成功' % del_user        elif choice == '3':
             print '查看用户信息'.center(50, '*')
             print '\t用户名\t密码'
             i = 0
             length = len(users)
             while i < length:
                 print '\t%s\t%s' % (users[i], passwds[i])
                 i += 1
         elif choice == '4':
             print '谢谢使用!'
             exit()        else:
             print '请输入正确选项'else:


    print '管理员登陆失败!'

python字典列表元组集合增删改查_元组_30

python字典列表元组集合增删改查_python字典列表元组集合增删改查_31

python字典列表元组集合增删改查_元组_32

 

二.元组(tuple,带了紧箍咒的列表):

元组本身是不可变数据类型,没有增删改查,元组内可以存储任意数据类型。
t = (1,2.0,'star')
##元组内包含可变数据类型时可以间接修改元组的内容
##组中只有一个元素时,后面一定要加逗号,否则数据类型不确定

1.元组的特性:
索引:
print t[0]
peint t[-1]

python字典列表元组集合增删改查_数据类型_33


切片:
print t[:-1]
print t[::-1]

python字典列表元组集合增删改查_元组_34


重复:
print t * 次数

python字典列表元组集合增删改查_用户信息_35


连接:
print t + ('s1','s2')

python字典列表元组集合增删改查_python字典列表元组集合增删改查_36

成员操作符:
print 's1' in t

python字典列表元组集合增删改查_元组_37

2.元组的应用场景:

变量交换数值:
b,a = a,b
#先把(a,b)封装成了一个元组(1,2)
例如:

python字典列表元组集合增删改查_python字典列表元组集合增删改查_38

打印变量值:
例如:

python字典列表元组集合增删改查_数据类型_39

元组的赋值:
有多少个元素,就用多少个变量接收
例如:

python字典列表元组集合增删改查_python字典列表元组集合增删改查_40

元组的排序:
t= sorted(元组名)
例如:

python字典列表元组集合增删改查_python字典列表元组集合增删改查_41

 

三.集合(set):

集合里面的元素是不可重复的
s = {1,2,3,4,5}
print s,type(s)

python字典列表元组集合增删改查_数据类型_42

1.定义一个空集合:

s = set([])

python字典列表元组集合增删改查_python字典列表元组集合增删改查_43

2.集合的应用:

给列表去重:
l = [数字,数字]
print list(set(l))

python字典列表元组集合增删改查_元组_44

3.集合的特性:

不支持索引,切片和重复
只支持成员操作符和for循环
成员操作符:print l in s

python字典列表元组集合增删改查_python字典列表元组集合增删改查_45


for循环:for i in s:
               print i

python字典列表元组集合增删改查_数据类型_46

4.集合的常用方法:

增加:
s.add(新元素)

python字典列表元组集合增删改查_python字典列表元组集合增删改查_47


增加多个元素:
s.update({元素一,元素二})

python字典列表元组集合增删改查_用户信息_48


删除:
s.pop()

python字典列表元组集合增删改查_元组_49


删除指定元素:
s.remove(指定元素)  

python字典列表元组集合增删改查_python字典列表元组集合增删改查_50


交集并集和差集:
例如:
s1={1,2,3}
s2={2,3,4}
print '并集:',s1.union(s2)
print '并集:',s1 | s2
print '交集:',s1.intersection(s2)
print '交集:',s1 & s2
print '差集:',s1.difference(s2)  #可以理解为s1中有哪些s2中没有的元素
print '差集:',s1-s2
print '对等差分:',s1.symmetric_difference(s2)
print '对等差分:',s1^s2

python字典列表元组集合增删改查_数据类型_51

子集和超集:
子集:print s1.issubset(s2)
超集:print s1.issuperset(s2)
#超集:s1中的每一个元素都在s2中,且s2中可能包含s1中没有的元素,则s2是s1的一个超集

不相交集:
print s1.isdisjoint(s2)

python字典列表元组集合增删改查_python字典列表元组集合增删改查_52

四.字典:

字典是一个无序的数据集合,用print输出字典的时候,通常输出顺序和定义顺序不同
方法一:
m = {
    'name':'sun',
    'age':18,
    'height':180
}
##key:value

python字典列表元组集合增删改查_数据类型_53

python字典列表元组集合增删改查_用户信息_54


方法二:
s = {
    'name':['sun','bo','ya'],
    'age':['18','13','20']
}

python字典列表元组集合增删改查_元组_55

方法三:
d = dict(a=1,b=2)

python字典列表元组集合增删改查_数据类型_56

1.字典的特性:

成员操作符:
##默认判断key值是否存在
print 'a' in d
print '1' in d

python字典列表元组集合增删改查_数据类型_57

for循环:
##默认循环遍历字典的key值

python字典列表元组集合增删改查_python字典列表元组集合增删改查_58


方法一:for k,v in d.items():
                 print k,'-->',v

方法二:for k in d:
                 print k,'-->',d[k]

2.字典的增加或更改key-value对:

增加或更改单个:d['key'] = value

python字典列表元组集合增删改查_数据类型_59


增加或更改多个:d.update({'key1':value1,'key2':value2})

python字典列表元组集合增删改查_数据类型_60


增加或更改单个d.setdefault('key',value)
##key存在时做更改,key不存在时做增加

python字典列表元组集合增删改查_元组_61

3.字典的删除:

方法一:
d.pop('key')
#弹出指定key-value值

python字典列表元组集合增删改查_用户信息_62

方法二:
d.popitem()
#弹出第一个

python字典列表元组集合增删改查_元组_63

方法三:
del d['key']
#删除指定key-value值

python字典列表元组集合增删改查_元组_64

4.字典的查看:

查看所有key值:print d.keys()
查看所有value值:print d.values()
查看所有key-value值:print d.items()

5.查看:

print d.get('key')
#方法获取指定key对应的value值,如果key值存在则返回对应的value值,如果不存在,默认返回none,如果需要返回指定值,传回即可print d.get('key','返回的语句')

python字典列表元组集合增删改查_用户信息_65

python字典列表元组集合增删改查_数据类型_66

python字典列表元组集合增删改查_数据类型_67