Python--(列表)

一.列表的数据项不需要具有相同的类型

创建一个列表,只要把逗号分隔的不同数据项实用方括号括起来即可.

列表也可以使用切片:原来字符串的切片在这里也可以用

 
li=['Google','Runnoob',1997,5000]
print(type(li))
print(li[:])#启用切片打印全部
print(li[-1::-1])#从后往前

执行命令得

 
<class 'list'>
['Google', 'Runoob', 1997, 5000]
[5000, 1997, 'Runoob', 'Google']

二.Python列表函数和方法

(obj:目标对象  seq:序列号)

python包含以下函数

序号函数
1

len(list) 

列表元素个数

2

max(list)

返回列表最大值 

3

min(list)

返回列表最小值 

4

list(seq)

将元组转为列表 

Python包含以下方法

序号方法
1

list.append(obj)

统计某个元素在列表中出现的次数 

2

list.count(obj)

统计某个元素在列表中出现的次数

3

list.extend(seq) 

列表末尾一次性追加另一个序号中的多个值(用心列表扩展原来的列表) 

4

list.index(obj)

在列表中找出某个值第一个匹配的索引位置即下标 

5

list.insert(index.obj)

将对象插入列表 

6

list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 

7

list.remove(obj)

移除列表中某个值得第一个匹配项 

8

list.reverse()

反向列表中元素 

9

list.sort([func])

对原列表进行排序 

10

liet.clear()

清空列表 

11

list.copy()

复制列表 

1.列表的增、删、改、查(insert  delete  update  query)

<1>增:

易混淆

list.insert(index,obj)(指定位置增添)

list.append(obj)(在末尾增加)

list.extend(seq)(用新列表扩展原来的列表)

list.insert(index,obj)将对象插入列表超出位置在列表尾部添加

list.append(obj)在列表末追加新的对象

 
li.append('2018')#追加到末尾
print(li)
li.insert(li.__len__(),'青年')#增加到末尾
print(li)
li.insert(0,'青年节')#增加到第一位
print(li)

执行命令得

 
['Google', 'Runoob', 1997, 5000, '2018']
['Google', 'Runoob', 1997, 5000, '2018', '青年']
['青年节', 'Google', 'Runoob', 1997, 5000, '2018', '青年']

两个列表还可以进行相加

列表还可以*得操作符

list.extend(seq)再累表末尾一次性追加另一个序列中的多个值

list1.extend(list2)把列表二迭代后追加到列表一,extend()没有返回值

 
li1=['a','b','c','d']
li2=[1,2,3,4]
li3=[li1,li2]
li.extend(li2)
#for in in li2:#使用append方法将li2加入li1列表中
    #li.append(i)
print(li1)
print(li3)
print(li*2)#列表中的元素x2

执行命令得

 
['a', 'b', 'c', 'd', 1, 2, 3, 4, 3]
[['a', 'b', 'c', 'd', 1, 2, 3, 4, 3], [1, 2, 3, 4, 3]]
['Google', 'Runoob', 1997, 5000, 'Google', 'Runoob', 1997, 5000]

<2>删:

del list[2]删除列表中下标为2得元素

list.pop(int index):把最后一个删除,也可以删除指定下标的元素

    list.pop()(obj=list[-1])移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值 参数是下标

list.remove(obj)一处列表中某个值得第一个匹配项

 
li2=[1,2,3,4,3]
del li2[2]#删除下标为2得元素
print(li2)
del li2[2:]#删除下标2以后的
print(li2)
li2=[1,2,3,4,3]
li2.pop(1)#删除指定下标
print(li2)
li2=[1,2,3,4,3]
li2.remove(3)#只删除第一个匹配项
print(li2)

执行命令得

[1, 2, 4, 3]
[1, 2]
[1, 3, 4, 3]
[1, 2, 4, 3]

<3>改:

li2=[1,2,3,4,3]
li2[2]=1
print(li2)

执行命令得

 
[1, 2, 1, 4, 3]

<4>查:

list.index(obj)从列表中找出某个值第一个匹配项的索引位置,该方法返回查找对象的索引位置,如果没有找到对象则抛出异常

 
li=[1,2,3,4,3]
print(li.index(3,3,5))#查找li中下标为3-5值为3得元素下标

执行命令得

 
4

可用in/not in 可以查找是否存在

 
li=[1,2,3]
print(1 in li)
print('1'in li)#查找时会判断元素类型

执行命令得

 
True
False

2.嵌套列表:[['a','b','c'],[1,2,3]]

 
li1=['a','b','c','d']
li2=[1,2,3,4,3]
li3=[li1,li2]
print(li3)
print(li3[1][3])#在li3中查找li2中下标为3得元素

执行命令得

 
[['a', 'b', 'c', 'd'], [1, 2, 3, 4, 3]]
4

3.dir(object)将一个数据类型的所有函数的属性打印

 
li1=['a','b','c','d']
li2=[1,2,3,4,3]
li3=[li1,li2]
print(dir(li3))

执行命令得

 
['__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()和__len__两类函数的区别:

len()类型代表的是全局函数在哪都可以用  

__len__()类型的函数代表私有一般不调用只有在指定函数内部

<1>len(list)列表的元素个数

 
li1=['a','b','c','d']
print(len(li1))

执行命令得

 
4

<2>max(list)字母以ascii为依据

返回列表的最大值

min(list)

返回列表的最小值


 
li1=['a','b','c','d']
print(max(li1))
print(min(li1))

执行命令得

 
d
a

<3>list(seq)构造函数-->执行时开辟新空间   功能:初始化数据

将元组转化为列表

 
new_li=(1,2,3)
print(new_li)
new_li=list((1,2,3))
print(new_li)

执行命令得

(1, 2, 3)
[1, 2, 3]
 
print(id(li1))#返回变量  对象的内存地址
print(id(li2))

执行命令得

 
78116144
78116744

<4>list.reverse()反向列表中元素

list.sort([func])对原列表进行排序 如果指定参数,则使用比较函数比较(func:函数)

 
li1=['a','b','c','d']
li1.reverse()#反向列表中的元素
print(li1)
li=[7,5,9,6,1,4,]
li.sort()#排序
print(li)

执行命令得

 
['d', 'c', 'b', 'a']
[1, 4, 5, 6, 7, 9]

<5>list.clear()清空列表

list.copy()复制列表

 
li1=['a','b','c','d']
li2=[1,2,3,4,3]
li1.clear()#清除
print(li1)
li5=li2.copy()#复制
print(li5)

执行命令得

 
[]
[1, 2, 3, 4, 3]

复制得几种不同

a=[1,2,3]
b=a
b[2]=9
print(a)
print(b)#等值 b改变a也变

c=[]
c=a
c[1]=9
print(c)
print(a)

d=a[:]#把 a的值一一取出
d[1]=7
print(d)
print(a)

执行命令得

 
[1, 2, 9]
[1, 2, 9]
[1, 9, 9]
[1, 9, 9]
[1, 7, 9]
[1, 9, 9]

练习

创建2个列表 一个存姓名 一个存手机
=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出

============================

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

练习

列表遍历:可以使用while,for

while

 
season=['spring','summer','autumn','winter']
i=0
while i<len(season):
    print(season[i])
    i+=1

执行命令得

 
spring
summer
autumn
winter

for(一种直接获得一种通过下标获得)

 
season=['spring','summer','autumn','winter']
for i in range(season.__len__()):
    print(season[i])
for i in season:
    print(i)

执行命令得

 
spring
summer
autumn
winter

练习

一个字符串将其分割成列表且数据类型为整型

 
v="1,2,5,7".split(',')
print(v)

执行命令得

 
['1', '2', '5', '7']


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值