Python中的列表,元组和字典

一.列表:

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

1.列表的特性:

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

Python中的列表,元组和字典
切片
print service[::-1] #列表的翻转
print service[1:]  #除了第一个元素的其他元素
print service[:-1]  #除了最后一个元素的其他元素

Python中的列表,元组和字典
重复
print service * 3

Python中的列表,元组和字典
连接
print service + service1

Python中的列表,元组和字典
成员操作符
print 'firewalld' in service
print 'firewaldd' not in service

#显示的是True和False

Python中的列表,元组和字典
for循环遍历
print '显示服务'.center(50,'*')
for se in service
print se

Python中的列表,元组和字典

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

Python中的列表,元组和字典
切片
例如:
print service[:][1]
print service[:-1][0]
print service[0][:-1]

Python中的列表,元组和字典

2.列表的增加:

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

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

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

Python中的列表,元组和字典
方法四:service.insert(1,'samab')
#insert:插入,在制定索引位置添加元素

Python中的列表,元组和字典

3.列表的删除:

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

4.列表的修改:

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

5.列表的查看:

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

6.列表的排序

方法一:service.sort()
                 print service

#按照Ascii码进行排序,先排大写字母再排小写字母

Python中的列表,元组和字典
方法二:service.sort(reverse=True)
               print service

##按照Ascii相反的顺序进行排序

Python中的列表,元组和字典
方法三:service.sort(key=str.lower)或service.sort(key=str.upper)
                 print service

#排序时不区分大小写

Python中的列表,元组和字典
方法四:random.shuffle(service)
                 print service

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

Python中的列表,元组和字典

Python中的列表,元组和字典

练习:
1.用户管理系统

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

Python中的列表,元组和字典

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中的列表,元组和字典

 

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

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

Python中的列表,元组和字典

Python中的列表,元组和字典

Python中的列表,元组和字典

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中的列表,元组和字典

Python中的列表,元组和字典

Python中的列表,元组和字典

 

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

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

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

Python中的列表,元组和字典
切片:
print t[:-1]
print t[::-1]

Python中的列表,元组和字典
重复:
print t * 次数

Python中的列表,元组和字典
连接:
print t + ('s1','s2')

Python中的列表,元组和字典

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

Python中的列表,元组和字典

2.元组的应用场景:

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

Python中的列表,元组和字典

打印变量值:
例如:

Python中的列表,元组和字典

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

 

三.集合(set):

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

Python中的列表,元组和字典

1.定义一个空集合:

s = set([])

Python中的列表,元组和字典

2.集合的应用:

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

Python中的列表,元组和字典

3.集合的特性:

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

Python中的列表,元组和字典
for循环:for i in s:
               print i

Python中的列表,元组和字典

Python中的列表,元组和字典

4.集合的常用方法:

增加:
s.add(新元素)

Python中的列表,元组和字典
增加多个元素:
s.update({元素一,元素二})

Python中的列表,元组和字典
删除:
s.pop()  #删除排序后的第一个元素

Python中的列表,元组和字典
删除指定元素:
s.remove(指定元素)   #删除指定元素

Python中的列表,元组和字典
交集并集和差集:
例如:
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中的列表,元组和字典

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

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

Python中的列表,元组和字典

四.字典:

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

##key:value

Python中的列表,元组和字典

Python中的列表,元组和字典
方法二:
s = {
    'name':['sun','bo','ya'],
    'age':['18','13','20']
}

Python中的列表,元组和字典

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

Python中的列表,元组和字典

1.字典的特性:

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典
方法一:for k,v in d.items():
                 print k,'-->',v

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

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

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

Python中的列表,元组和字典
增加或更改多个:d.update({'key1':value1,'key2':value2})

Python中的列表,元组和字典
增加或更改单个d.setdefault('key',value)
##key存在时做更改,key不存在时做增加

Python中的列表,元组和字典

3.字典的删除:

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

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

Python中的列表,元组和字典

4.字典的查看:

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

Python中的列表,元组和字典

5.查看:

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

Python中的列表,元组和字典

Python中的列表,元组和字典

Python中的列表,元组和字典