zoukankan      html  css  js  c++  java
  • Python之列表,元组,字典

    一、列表

    列表定义及格式 定义: 列表是一个可修改的,元素以逗号分割,以中括号包围的有序序列。
    格式: 变量名=[元素1,元素2,元素3,…]

    list = [4,1,3,5,5]
    list1 = ['唐僧','猪八戒','沙僧','孙悟空']
    

    由于列表是序列的一种,列表支持所有的我们对字符串所讨论过的序列操作。唯 的区别就是其结果往往是列表而不是符串。 我们能够对列表进行相加、重复、索引 、切片,循环遍历等操作,就像对字符 串所傲的操作那样。

    列表相加:

    list1 = [1,2,3]
    list2 = [4,5,6]
    list1+list2 #[1,2,3,4,5,6]
    

    列表相乘:

    list1 = [1]
    list2 = list1*4 #[1,1,1,1]
    

    获取元素:

    names = ['张三','李四','王老五']
    print(names[1]) #李四
    
    #遍历:
    for i in names:
    	print(names)
    

    多个变量接受元素:

    a,b = ['张三','李四']
    print(a) #张三
    print(b) #李四
    
    #置换
    c = a
    a = b
    b = c
    print(a,b)
    #序列解包: 可以使用 ”*变量名” 这种格式来接受多个元素值。并且和位置无关。
    lst1, *lst2 = ['a','b','c','d']
    print(lst1) #a
    print(lst2) #['b','c','d']
    

    列表类型特有方法 不同的类型有自己不同的操作方法。对列表的操作有增删改查四种操作。
    (1) .增加操作
    append 追加,在列表的尾部加入指定的元素
    extend 将指定序列的元素依次追加到列表的尾部(合并),不会去重复内容
    insert 将指定的元素插入到对应的索引位上,注意负索引倒序插入,超过索引就会在末尾插入

    #append
    a = [12,15,18]
    a.append(9) #[12,15,18,9]
    #extend 等价于 a+b
    b = [12]
    b.extend(a) #[12,12,15,18]
    #insert
    c = [1,2]
    c.insert(1,5)#[1,5,2]
    

    (2) .删除操作
    pop 弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(从右向左删除)
    remove 从左往右删除一个指定的元素
    del 删除整个列表或列表的数据,del是python内置功能,不是列表独有的

    a = [1,2,3]
    a.pop() #[1,2]
    a.remove(2) #[1]
    del a #没了
    

    (3) .修改操作
    lists[index] lists[index]=’xxx’,通过索引修改内容
    reverse 顺序倒序
    sort 按照ascii码表顺序进行排序
    修改使用索引 lists[0]=’xx’

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    (4) .查找操作
    count 计数,返回要计数的元素在列表当中的个数
    index 查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

    a = [1,5,9,9,2,4,6,1,9]
    print(a.count(9)) #3
    print(a.index(4)) #5
    print(a[5]) #4
    

    超出列表末尾之外的索引总是会导致错误,对列表末尾范围之外赋值也是如此。

    列表嵌套 :
    列表嵌套指的是列表中可以多层次的嵌套列表。
    在这里插入图片描述

    二、元组

    元组是一个不可修改的,元素以逗号分隔的以小括号包围的有序序列, 可以将元组看成一个不可修改的列表。
    格式: 变量名=(元素1,元素2,…)

    tup = (5,7,9,4,3,2,)
    #访问
    print(tup[1]) #7
    print(tup[1:5:1]) #(7,9,4,3)
    for i in tup:
    	print(i)
    #合并
    tup1 = (1,3,5)
    tup2 = (2,4,6)
    print(tup1+tup2) #(1, 3, 5, 2, 4, 6)
    #多维访问
    tups = ((2,4,6,),(1,3,5),(11,15,18),(13,16,17))
    print(tups[1][2]) #5
    #使用多个变量接受元组中的值 
    name,age = ('张三','18')
    print(name) #张三
    ptint(age) #18
    #修改元组 
    #说明:Python中不允许修改元组的数据,包括不能删除其中的元素。 如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。
    

    在这里插入图片描述

    元组一个逗号魅力

    tup = (1) #<'class int'>
    tup1 = (1,) #<class 'tuple'>
    #tup()函数
    tup2 = 'family'
    tup3 = tuple(tup2) #('f','a','m','i','l','y')
    

    元组中的方法
    index 从左往右返回第一个遇到的指定元素的索引,如果没有,报错
    count 返回元组当中指定元素的个数
    在这里插入图片描述

    #元组求和
    a=(1,2,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
    c = 0
    for b in a :
        c+=b
    print(c)
    
    #输出元组内奇偶数的个数
    c = (1,2,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
    a = 0
    b = 0
    for i in c:
        if c[i-1]%2==0:
            a += 1
        else:
            b += 1
    print(a)
    print(b)
    

    三.字典

    我们可能见过这种这种类型name=’赵四’, age=18 或者 name:’赵四’, age:18age=18或者age:18,这种格式的数据结构我们称之为映射(mapping), 映射指的是可以通过名字 age 引用 值 18。一般将’age’ 叫做键(key) ‘18’叫做值 (value)。整体我们称之为键值对。 在Python中保存这种键值对格式的数据的一种类型叫做字典 dict。 字典是Python中唯一内建的映射类型。
    在这里插入图片描述

    #创建字典
    message = {'name':'亚瑟','age':'34','hight':'1.83'}
    #注意:字典的key 不能是可修改数据类型,例如列表就不能当字典的key。 value 可以是任意数据类型。
    #(1) .增加操作 
    #变量名[key]=value 通过key 添加value值,如果key存在则覆盖 
    #setdefault(key,default_value ) 指定key和value,如果key存在则覆盖
    message['name'] = '张三'
    message.setdefault('weiht',55)
    #(2) .删除操作 
    #pop     弹出,返回并删除指定键对应的值
    #popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
    #clear   清空字典
    a={'name':'fxx','age':18,'height':1.75}
    print(a)
    print(a.pop('name'))
    print(a.popitem())
    print(a.clear())
    #(3) .修改操作 
    #变量名[key]=value 通过key 添加value值,如果key存在则覆盖
    #update() 传递一个字典,如果key相同则覆盖,没有的key则添加
    a={'name':'fxx','age':18,'heiht':1.75}
    b={'wight':66}
    a.update(b) #{'name': 'fxx', 'age': 18, 'heiht': 1.75, 'wight': 66}
    (4) .查找操作 
    keys 	返回一个包含字典所有key的列表
    values 	返回一个包含字典所有vaule的列表
    get 	以键取值,如果指定键不存在,默认返回None,可以指定返回内容
    update 	以字典格式更新指定键的内容,如果键不存在,创建键和值
    items 	返回字典键值呈元组形式的格式
    len 	测量字典,键值对的个数(整体
    

    在这里插入图片描述

    for …in … 通过for … in …:的语法结构,我们可以遍历字符串、列 表、元组、字典等数据结构。
    not in 判断指定的键是否不在字典当中
    在这里插入图片描述
    dict()函数 dict内置函数可以创建一个空字典、或者通过列表+元组的形式或者元组+元组形 式创建一个字典,或者通过关键字来创建一个字典
    在这里插入图片描述

    #购物车:
    import time as wait
    money = int(input("请输入你的余额:"))
    product_list = [{'name': '苹果', 'price': 10},
                {'name': '榴莲', 'price': 30},
                {'name': '草莓', 'price': 20},
                {'name': '菠萝', 'price': 15},]
    for sp in product_list:
        wait.sleep(0.2)
        print(product_list.index(sp),product_list[product_list.index(sp)]['name'],product_list[product_list.index(sp)]['price'])
        #购买:
    while True:
        x = int(input("购买编号为:"))
        y = int(input("购买数量为:"))
        print('购物车:')
        if -1<x<product_list.index(sp)+1:
            if 0<product_list[x]['price'] * y<money:
                num =  product_list[x]['price']*y
                money = money - num
                print('购买的水果为{},数量为{},剩余{}钱'.format(product_list[x]['name'],y,money))
            elif product_list[x]['price'] * y>money:
                print("您钱不够了")
                break
            else:
                print('您的钱用光了!')
                break
        else:
            print("输入有误,请重新输入!")
    
    请输入你的余额:500
    0 苹果 10
    1 榴莲 30
    2 草莓 20
    3 菠萝 15
    购买编号为:1
    购买数量为:5
    购物车:
    购买的水果为榴莲,数量为5,剩余350钱
    购买编号为:0
    购买数量为:5
    购物车:
    购买的水果为苹果,数量为5,剩余300钱
    购买编号为:3
    购买数量为:5
    购物车:
    购买的水果为菠萝,数量为5,剩余225钱
    购买编号为:2
    购买数量为:10
    购物车:
    购买的水果为草莓,数量为10,剩余25钱
    购买编号为:0
    购买数量为:3
    购物车:
    您钱不够了
    
    爱,就是你和某个人一起经历的一切。
  • 相关阅读:
    小三角 + 右箭头【纯css】
    小程序自定义弹窗【解决点透问题】
    分页存储过程
    SQL如何用一条语句批量修改表中不同数据
    Dapper批量更新
    vue中 $event 的用法--获取当前父元素,子元素,兄弟元素
    T-sql语句查询执行顺序
    Lucene入门
    Spring Boot入门
    SSM-Spring一些知识点
  • 原文地址:https://www.cnblogs.com/afly-8/p/13561156.html
Copyright © 2011-2022 走看看