元组和字典

本文详细介绍了Python中的元组和字典。元组不可变,类似于列表但不能修改,创建时使用括号并以逗号分隔元素。字典是可变容器,存储键值对,通过键访问值,提供了多种操作方法如添加、删除、修改键值对。还讨论了字典的浅拷贝和深拷贝,并给出了两个作业题目:从字典中取出多个值和打印斐波那契数列。

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

元组

元组

元组中的值是无法更改的,除此之外,元组与列表有完全相同的功能,可以逐项输出,也可以通过tuple[i]表示第i+1个元素.

元组的创建

元组的创建与列表相似,唯一不同的地方是,元组是通过()将元素包含在内,我们可以通过定义一个tuple()来表示一个元组。

tuple1=(1,2,3,4,5)

注意:逗号是必须的.例如:
(1,)是一个元组
而(1)是一个整型。

元组中的函数

len(tuple)表示某一元组的长度
max(tuple)表是元组的最大值
min(tuple)表示元组的最小值

字典

字典的定义

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号( : )分割,每个键值对之间用逗号 (, )分割,整个字典包括在花括号 {} 表示

dict1={'name':'张三','occupation':'职业罪犯'}
字典的基本用法
  • 通过 key 访问 value 。
  • 通过 key 添加 key-value 对。
  • 通过 key 删除 key-value 对。
  • 通过 key 修改 key-value 对。
  • 通过 key 判断指定 key-value 对是否存在。
  • 通过 key 访问 value 使用的也是方括号语法
字典的常用方法
  • clear()方法 清楚字典中的所有元素,使其变为一个空字典。dict1.clear()
  • get()方法 可以通过字典中的key值来访问value,并且当其中没有该key值时,会返回None
字典的输出
print(dict1.keys())#输出所有的key值
print(dict1.values())#输出所有vale值
for k in dict1.keys():
    print(k, dict1[k])
浅拷贝和深拷贝

b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。
b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。 copy 模块的 deepcopy 方法。

作业

作业1

我们想要从字典里取出python1,python2,python3。

a = {"name":"123","data":{"result":[{"src":"python1"},{"src":"python2"},{"src":"python3"}]}}
b=a.get('data')
list1=b.get('result')
for i in range(0,3):
    print(list1[i].get('src'))
    
作业2
# 有如下值集合[11,22,33,44,55,66,77,88,99,90],
# 将所有大于66的值保存至字典的第一个key的值中,
# 将小于66值保存至第二个key的值中。
a=[11,22,33,44,55,66,77,88,99,90]
b=[]
c=[]
dic={'大于66':b,
     '小于66':c}
for j in range(0, len(a)):
    if a[j]>66:
        dic.get('大于66').append(a[j])
        continue
    elif a[j]<66:
         dic.get('小于66').append(a[j])
         continue
print(dic)
小复习

打印出斐波那契数列

def fib(n):
    a=1
    b=1
    for i in range(1,n):
        print('%12ld%12ld'%(a,b),end='\t')
        if i%3==0:
            print('')
        a=a+b
        b=a+b
fib(22)
           1           1	           2           3	           5           8	
          13          21	          34          55	          89         144	
         233         377	         610         987	        1597        2584	
        4181        6765	       10946       17711	       28657       46368	
       75025      121393	      196418      317811	      514229      832040	
     1346269     2178309	     3524578     5702887	     9227465    14930352	
    24157817    39088169	    63245986   102334155	   165580141   267914296	

Process finished with exit code 0

输出结果非常好看,斐波那契数列其实实现非常简单,将a和b不断地赋值,将a改成b,将b改成a+b,循环下去,我们就能得到一个这样的数列.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值