python3.6列表20180504

Python有6个序列的内置类型,但最常见的是列表和元组
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

li = [33.33,'google','ok']

数据类型: 增删改查

列表中的增删改查:

增加:  list1.append()   list1.extend()   list1.insert()

list1 = ['a','b','c']
list2 = [1,2,3]
list1.append('2018')   
list1.append(list2)   #输出效果 ['a', 'b', 'c', '2018', [1, 2, 3]]
list1.extend(list2)    #输出效果 ['a', 'b', 'c', '2018', 1, 2, 3]  相当于list2中的每个值迭代进入list1中
list1.insert(2,'2020')
list1.insert(list1.__len__(),'000')   #如果超出了元素个数,就直接在尾部添加
print(list1*2)

删除: list1.pop()   list1.remove()   del list1[:]

list1 = ['a','b','c','b','b']
list2 = [1,2,3]
list1.pop(-1)   #输出['a', 'b', 'c', 'b'] 删掉制定位置的列表元素,默认是pop掉最后一位
list1.remove('b')   #输出['a', 'c', 'b'] 有相同值得时候,删掉第一个

del list1[1:]    #输出['a']  删除列表中的一个区间,也可以整体删除list1

改值:

list1 = ['a','b','c','b','b']
list1[1] = '666'     #输出['a', '666', 'c', 'b', 'b']  更改并替换

查找: list.index()

list1 = ['a','b','c','b','b']
print(list1.index('c'))  #输出2,找到元素c所对应的索引值

print('a'in list1)  #输出True,得到一个布尔值


将一个数据类型的所有函数和属性,输出

print(dir(list2))

输出结果:['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

__ __这种下划线类型的表示私有,一般不调用,例如:__len()__


最大值最小值max()和min()

list1 = ['a','b','c','b','b']

list2 = [1,2,3]

list3 = ['青','年','节']

print(max(list1))   #输出c
print(min(list1))    #输出a
print(max(list2))   #输出3

print(max(list3))    #输出青

最大最小的原则是依据ASCII码的排列


id数值:

list3 = ['青','年','节']

print(id(list3))       #481637624904

print(id(list3[0]))    #798902880016
print(id(list3[1]))    #798903750128
print(id(list3[2]))    #798903748848


*构造函数---->开辟新空间,初始化数据list()

将元组转化为列表:

tuple1 = (1,2,3)
print(list(tuple1))     #输出[1, 2, 3]

排列,反转

list1 = ['a','b','c','b','b']

list1.sort()   #输出['a', 'b', 'b', 'b', 'c']

list1.reverse()   #输出['b', 'b', 'c', 'b', 'a']

list1.clear()   #输出[]清除了list1中的所有元素

拷贝注意事项:

list1 = ['a','b','c','b','b']
list5 = list1.copy()
print(list5)   ['a', 'b', 'c', 'b', 'b']     #list5拷贝成一个元素一模一样的列表,浅拷贝
print(list1)   ['a', 'b', 'c', 'b', 'b']
list5[0] = '000'
print(list5)   ['000', 'b', 'c', 'b', 'b']   #list5中元素修改后,只影响list5本身,而不影响list1
print(list1)   ['a', 'b', 'c', 'b', 'b']

list1将值赋予list5 和list1=list5有区别

list1 = ['a','b','c','b','b']
list5 = list1
print(list1)    #['a', 'b', 'c', 'b', 'b']
print(list5)    #['a', 'b', 'c', 'b', 'b']
list5[0] = '666'
print(list1)    #['666', 'b', 'c', 'b', 'b']
print(list5)    #['666', 'b', 'c', 'b', 'b']


list1 = ['a','b','c','b','b']
list5 = list1[:]
print(list1)    #['a', 'b', 'c', 'b', 'b']
print(list5)    #['a', 'b', 'c', 'b', 'b']
list5[0] = '666'
print(list1)    #['a', 'b', 'c', 'b', 'b']
print(list5)    #['666', 'b', 'c', 'b', 'b']


练习:创建2个列表,一个存姓名,一个存手机
============通讯录管理系统=============
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
names=['张三','李四']
phones=['1111111111','2222222222']

print('***********************')
while(True):
    print('=======通讯录管理系统======= ')
    print('1.增加姓名和手机')
    print('2.删除姓名')
    print('3.修改手机')
    print('4.查询所有用户')
    print('5.根据姓名查找手机号')
    print('6.退出')
    print('============================')
    i=int(input('请选择:'))
    if(i==1):
        name=input('请输入姓名:')
        phone=input('请输入电话:')
        while phone in phones:
            phone=input('电话已存在,重新输入电话:')
        names.append(name)
        phones.append(phone)
        print('录入成功')
    elif i==2:
        name = input('请输入姓名:')
        if name in names:
            index=names.index(name)
            # names.pop(index)
            # phones.pop(index)
            del names[index]
            del phones[index]
            print('删除成功')
        else:
            print('名字不存在')
    elif i==4:
        for i in range(names.__len__()):
            print(names[i],phones[i])
        print('输出完毕')
    elif i==3:
        phone = input('请输入电话:')
        if phone in phones:
            new_phone = input('请输入新的电话:')
            while new_phone in phones:
                new_phone = input('新的电话已存在,重新输入电话:')
            index=phones.index(phone)
            phones[index]=new_phone
            print('更新成功')
        else:
            print('电话不存在')
    elif i == 5:
        name = input('请输入姓名:')
        if name in names:
            index = names.index(name)
            print('电话:',phones[index])
        else:
            print('名字不存在')
    elif i == 6:
        print('谢谢使用')
        break


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值