一.python基础 -------4列表 元组

本文介绍了Python中的列表和元组数据结构。详细讲解了列表的创建、增删改查操作,如insert、append、extend、del等,并探讨了列表的切片、反转和排序功能。同时,提到了元组的不可变特性及其在存储数据时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.列表的数据类型不需具有相同的类型

 创建一个列表,只需要把逗号分割的不同的数据类型项使用方括号括起来即可

  list1=['Google','Runoob',1997,2000];

  print('list[0]:',list1[0])


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

 list=['Google','Runoob',1997,2000];

 print(list[1:3])



2.数据结构--->列表的增删改查(insert,delete,update,query)

    li=[33.33,'abc','456',90,'Google','Runoob',1997,2000]

    print(type(li))

    print(li)                               #切片

    print(li[:])

    print(li[-1::-1])                     #从前到后


增:list1.insert(4,2001),list1.append('hello')

 两个列表还可以进行相加

 列表还可以 以*的操作符 listl*3

 列表1.extend(列表2),是把列表2迭代后(遍历 循环)加到列表1,extend()没

 有返回值

   li=['Google','Runllb',1997,2000]

    li.append('2018')

    print(li)

    li.insert(2,'青年节')

    print(li)


    li1=['a','b','c','d']

    li2=[1,2,3,4]

    li1.append(li2)

    li1.extend(li2)         #注释掉

    for i in li2:

       li1.append(i)
   print(li2*4)           #乘于4个
   print(li2)

删除:del list1[2]

  listl.pop(int index):把最后一个删除,也可以指定删除的下标
  litl.remove("")删除括号中的内容,但只删除一次
li1=['a','b','c','d']
li2=[1,2,3,4]
del li2[2:]
print(li2)
li1=['a','b','c','d']
li2=[1,2,3,4]
del li2[2:]
li2.pop(1)        #删除下标
print(li2)

修改:list[2]=2001

 li2[li2.__len__()-1]=6
 print(li2)

查:list.index('Runoob')返回查找到的下标 不存在 抛

异常

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

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

        print('3' in li2)



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

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

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

list函数 dir(object)将一个数据类型的所有函数和属性 

输出

_len__() __类型的函数代表私有的_一般不调用

1.len(list)

列表元素个数

print(dir(list))      # dir将一个数据类型的所有函数属性 输出

print(li3.__len__())

print(len(li3))       #__len__() —类型的函数代表私有


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

返回列表元素最大值


3.min(list)

返回列表元素最小值

li1=['a','b','c','d']

print(max(li1))

print(min(li1))

4.list(seq)

将元组转换为列表

5.list.append(obj)

在列表末尾添加新对象

 tu=(1,2,1)

li1=['a','b','c','d']

li2=[1,2,3,4]

 new_li=list(tu) #构建函数-->开辟新空间 初始化数据

 # 数据

 print(id(li1))  #返回变量 对象的内存地址

 print(id(li2))

 print(new_li)

 print(tu)

 6.list.extend(seq)

 在列表末尾一次性追加另一个 序列中 的每个值 (用新列表扩展原来的列表)

li1=['a','b','c','d']
li2=[1,2,3,4]
tu=(1,2,1)
li1.extend(tu)
print(li1)


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

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


8.list.reverse()

  反向列表中元素

li1=['a','b','c','d']

pop=li1.pop()

print(pop)

9.list.sort([func])

 对原列表进行排序 如果指定参数,则使用比较函数指定的比较函数

10.list.clear()

      清空列表

11.list.copy() 复制列表

li1.sort()

li1.clear()

li5=li1.copy()

print(id(li1))

print(id(li5))

li5[2]='w'

print(li1)

print(li5)

a = [1,2,3]

b=a

print(a)

print(b)

b[2]=9

c = []

c = a

c[1]=9

print(c)

print(a)

d=a[:]

d[1]=7

print(d)

print(a)

names=['山治','索隆']
phones=['1666666666','15900000000']

print('**********************')
while(False):...

i=0  # 元素下标
while i <len(names):
    print(names[i])
    i+=1  # i=i+1
# for 的两种写发
for i in range(len(names)):
    print(names[i])
for i in names:
    print(i)

eval()将元组、字典、列表类型的字符串转为元组、字典、列表 默认元组
可以把list,tuple,dict和string相互转化。
r='23,6,30'
r1=eval(r)
print(r1[0])
print(type(r1[0]))
print(type(r1))


字符串转换成字典
 r="{'a':1,'b':2}"
 r1=eval(r)
 print(type(r1))

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

二.元组

既定 创建的时候 不会改变

1.可变

2.数值 不可变类型

  a=1

  a=2

  b=1

  print(id(1))

  print(id(a))

  print(id(b))

  t=(1,2,'oop',4,[2,2,3],'汉字')

  print(t[1])

  t[4][1]=3

  print(t)


逐个赋值  一一对应
t=(1,2,'oop',4,[2,2,3],'汉字')
a,b,c=t
print(a,b,c)
a=(33,)
print('a:',a,)
print('a:',type(a))

两种方式:
t=(1,2,'oop',4,[2,2,3],'汉字')
for i in range(len(t)):
    print(t[i])
for i in t:
    print(i)


切片:
t=(1,2,'oop',4,[2,2,3],'汉字')
print(t[::-1])


 

# 运算符
t=('A','a','B','b')
t1=t * 3
print(t1)
print(max(t))
print(min(t))


li=[1,2,3,6,5,4]
tu=tuple(li)  # 创建一个元组 格式的诗句格式 内容太就是小括号里面的
print(tu)
tu1=(tu[:])
print(tu1)

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

练习.

3.求列表中最大值,最小值 2listl.max(),listl.min()

  创建两个列表 一个存姓名 一个存手机:

names=['小杰']
phones=['110']
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 phones in phones:
            phones=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、付费专栏及课程。

余额充值