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
    购物车:
    您钱不够了
    
    爱,就是你和某个人一起经历的一切。
  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/afly-8/p/13561156.html
Copyright © 2011-2022 走看看