python学习第三课

python学习第三课

·元组 ·列表 ·字典


元组

·元素的有序列。 ·元组的每个素可以是任意类型 ·元组使用小括号

#元组定义
tup0=()
tup1=('physics','chemistry',1997,2000)
tup2=(1,2,3,4,5)
tup="a","b","c","d"
print(tup)

在这里插入图片描述

#元组访问
tuple=('hello',100,4.5)
print(tuple[0])
print(tuple[1])
print(tuple[2])

在这里插入图片描述

#元组的索引、组合、切片
t1=(1,'two',3)
t2=(t1,3.25)
print(t2)
print(t1+t2)
print((t1+t2)[3])
print((t1+t2)[2:5])

在这里插入图片描述

注意: 元组不可以进行修改,但可以进行连接组合

#元组的遍历
a_tuple=(1,2,3,4,5)
for num in a_tuple:
    print(num,end='')

在这里插入图片描述

元组内置函数

在这里插入图片描述

#函数示例
t1=('1','two','3')
print(len(t1))

列表

·列表也是值的有序,可以存储不同类型数据。
似元组用逗号 分隔不同数据项,使用方括号起来。 ·
列表是可变的

#列表创建
Techs = ['MIT', 'Caltech']
print(Techs)
Techs.append('tax')
print(Techs)
#append 它不创建一个新列表 ,而是通过向Techs Techs 的末尾添加一个新元素改变这个已有的 列表

在这里插入图片描述

列表append、extend函数的差别

append保持原来结构不变,extend直接扩展

L1 = [1,2,3 ]
L2 =[4,5,6 ]
L3 = L1 + L2
print ('L3=',L3)
L1.extend(L2) 

print('L1=',L1)
L1.append(L2) 
print ('L1 =',L1)

在这里插入图片描述

#列表索引同元组一样
A=[1,2,3]
print(A[0])
#循环遍历
#for循环遍历
vist=['hello',123,'200']
for var in vist:
    print(var)
#while循环遍历
length=len(vist)
i=0
while i<length:
    print(vist[i])
    i+=1

一项注意

当列表正在遍历行进时,改变列表会变换索引,因此可以用切片代替(L1[:]) 列表的拷贝可用方法来实现

def clone(a):
    acopy=a[:]
    return acopy
a=[1,2,3]
b=clone(a)
print(b)

练习1

假设L1和L2是列表,删除L1中出现在L2中的元素

L1=[1,2,34,5]
L2=[1,2]
for i in L2:
    if i in L2 :
        L1.remove(i)
print(L1)

在这里插入图片描述

列表常见操作汇总

#将其他格式的数据转化为列表
word='hello'
name=list(word)
print(name)
#列表元素赋值
list=[1,2,3]
list[0]=2
print(list)
#切片
list=[1,2,3]
print(list[:2])#从索引为0字符到索引为1的字符(2-1)
#列表修改
vist=list(range(6))
print(vist)
vist[0:1]=[20,30,40,50]
print(vist)
#整体插入
list1=[1,2,3]
list1.insert(0,2)
print(list1)
#列表删除
#列表删除有三种方法,del,pop,remove
list1=[1,2,3,4,5]
del list1[2]#删除索引下标为2的值
print(list1)
list1.pop()
print(list1)
list1.remove(2)
print(list1)
#列表的排序及反转
list2=[1,2,67,0,9]
list2.sort()
print(list2)
list2.reverse()
print(list2)

字典

字典是一种存储数据的容器,它和列表一样,都可以存储多个数据。 其由“键”和“值”所组成,其中键是唯一的

info = {'name':'班长', 'id':100, 'sex':'male', 'address':'北京'}
print(info['name'])
print(info['address'])

在这里插入图片描述

# 列出所有的键
monthNumbers = {'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5, 1:'Jan', 2:'Feb', 3:'Mar', 
4:'Apr', 5:'May'}
keys = [] #空列表,或keys=list()
for e in monthNumbers:
    keys.append(str(e))
print(keys)
keys.sort()
print(keys)

在这里插入图片描述

字典常用方法

get:如果我们不确定字典中是否存在某个键而又想获取其值时,可以使用 get方法,还可以设置默认值。

info = {'name':'班长', 'id':100, 'sex':'female', 'address':'北京'}
age = info.get('age')
print(age) #‘age’键不存在,所以age为None
print(type(age))
age = info.get('age', 18) # 若info不存在‘age’,返回默认值18
print(age)

除字典元素: 

del:用于删除字典;删除后,字典完全不存在了,无 法再根据键访问字典的值。 
clear:只是清空字典中的数据,字典还存在,只不过 没有元素。

del info
print(info)

在这里插入图片描述

info.clear()
print(info)

输出结果为空

计算字典中键值对的个数

dict = {'Name': 'Zara', 'Age': 7}
print("Length : %d" % len (dict))

获取字典中键的列表 keys()方法返回在字典中的所有可用的键的列表。

dict = {'Name': 'Zara', 'Age': 7};
print(dict.keys())

. 获取字典中值的列表 values()方法返回在字典中的所有可用的值的列表

dict = {'Name': 'Zara', 'Age': 7};
print(dict.values())

. 计算字典中键值对的个数 items()方法返回字典的(键,值)元组对的列表

dict = {'Name': 'Zara', 'Age': 7}
print("Value : %s" % dict.items())

总结与练习

利用循环创建一个包含100个偶数的列表,并且计算该列表的和与平均值,请分别使用while和for循环实现,采用文件输出结果

import random
import numpy as np
list1=[]
i=0
while i<100:
    a=random.randint(0,1000)
    if a%2==0:
        list1.append(a)
        i+=1
    else:
        continue
print("用while循环制造出来的列表是",list1)
s=sum(list1)
print('列表的和是',s)
m=np.mean(list1)
print('列表的均值是',m)

list2=[]
i=1
for i in range(0,100):
    a=random.randint(0,1000)
    if a%2==0:
        list2.append(a)
        i+=1
    else:
        continue
print("用for循环制造出来的列表是",list1)
s2=sum(list2)
print('列表的和是',s2)
m2=np.mean(list2)
print('列表的均值是',m2)

在这里插入图片描述

编写两个函数:假设L是列表,f是函数,f(e)应用到L的每个元素,并用返回值替换原来的元素,其中f(e)分别定义为阶乘和斐波拉契数 什么是斐波那契数列,1,1,2,3,5,8,13…这样一个数列就是斐波那契数列,求第n项的值。

def fib(n):
    if n==1:
        return 1
    elif n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

def jiecheng(n):
    if n==1:
        return 1
    else:
        return n*jiecheng(n-1)

jiecheng(fib(5))

编写程序,运用列表或字典完成通讯录的基本功能

在这里插入图片描述

people={'骆俊邦':'13567890987','金廷宾':'13567890987','陆金俊':'13890876789'};
print("|---欢迎进入通讯录程序---|")
print("功能如下:")
print("|---1:增加姓名和手机号码---|")
print("|---2: 删除姓名---|")
print("|---3: 修改手机号码")
print("|---4:查询所有用户---|")
print("|---5:根据姓名查找手机号---|")
print("|---6: 退出---|")
while True:
   

    num=int(input("请输入你想输入的指令"))
    if num==1:
        print("欢迎进入增加姓名和手机号页面")
        name=input("请输入你想增加通讯人的姓名")
        if name in people:
            print("该用户姓名已存在",name,':',people[name])
            continue
        else:
            haoma=input("请输入该用户的通讯号码")
            people[name]=haoma
            continue
    if num==2:
        print("欢迎进入删除页面")
        name=input("请输入你想删除通讯人的姓名")
        if name not in people:
            print("该用户不在通讯录里,请重新输入")
            continue
        else:
            del people[name]
            continue
    if num==3:
        print("欢迎进入修改手机号页面")
        name=input("请输入你想要修改手机号的姓名")
        if name not in people:
            print("该用户不在,请重新输入")
            continue
        else :
            phone=input("请输入你想改成的手机号码")
            people[name]=phone
    if num==4:
        print("欢迎进入查询所有用户界面目前通讯录中的所有联系人为:")
        print(people.items())
        continue
    if num==5:
        print("欢迎进入通讯录查找页面")
        name=input("请输入你要查找的对象")
        if name not in people:
            print("不存在该用户!")
        else:
            print("该用户的联系方式是",people[name])
    if num==6:
        print("欢迎使用")
        break

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值