zoukankan      html  css  js  c++  java
  • python之元组,列表和字典的区别

    Python语言包含6种内建的序列,其中,有两种主要的类型:列表和元组。

    列表是可以修改的,而元组不可以,如果要添加或者删除某些元素,就只能用列表,为了限制某些元素,就会用到元组。一般来说,列表可以替代元组。在列表之中,有索引,分片,加,乘等等。

    一、list(列表) 用方括号[]
    列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素。
    获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角标,越界时抛出IndexErro
    list中的元素的数据类型也可以不一样(就像Java一样),也可以在list内放另外一个list,这样也就形成了一个多维集合

    常用的方法有:

    1.len()获取列表的长度

    2.X.append(“你好”)  向列表中添加元素

    3.X.pop()弹出末尾元素

    1 zoo = ['pig','tiger','dog']
    2 print(len(zoo))
    3 zoo.append("nihao")
    4 print(zoo)
    5 print(zoo.pop())
    6 print(zoo[0])
    7 print(zoo[-1])

    单列表操作

     1 # 元组操作
     2 
     3 x = [5, 6, 2, 1, 6, 7, 2, 7, 9]
     4 
     5 # append()方法,就是在列表尾部添加元素
     6 x.append(2)
     7 print(x)
     8 
     9 # insert(开始位置,插入的值),插入一个元素到指定位置
    10 x.insert(2, 99)  # 2是索引,表示这个元素要放什么位置,99是插入的元
    11 print(x)
    12 
    13 # 删除元素 remove()
    14 x.remove(2)  # 这个2是指一个元素不是索引,如果多个,默认移除第一个
    15 print(x)
    16 
    17 x.remove(x[2])  # 根据索引,直接移除索引对应的元素
    18 print(x)
    19 
    20 # pop(),移除列表尾部最后一个元素
    21 x.pop()
    22 print(x)
    23 
    24 # 列表引用
    25 print(x[0:5])  # 相当于一个范围,从左边索引到右边索引,但是不包括右边索引
    26 
    27 # -1 索引代表最后一个元素,-2代表倒数第二个
    28 # 此时x= [5, 6, 1, 6, 7, 2, 7, 9]
    29 print(x[-1])
    30 print(x[-2])
    31 
    32 # 查找某一个元素的索引值,一下1的索引应该是2
    33 print(x.index(1))
    34 
    35 # 计算某一个元素出现的次数
    36 print(x.count(6))  # 元素6出现了2次
    37 
    38 # 排序,默认从小到大
    39 x.sort()
    40 print(x)
    41 
    42 # 字母排序
    43 y = ['Janet', 'Jessy', 'Anthony', 'Tom', 'Alice', 'Bob']
    44 y.sort()
    45 print(y) # 注此处的y为重新排序的y,,y.sort()没有对应的返回值

    多列表

     1 # 多维列表
     2 
     3 x = [[5, 6], [6, 7], [7, 2], [2, 5], [4, 9]]
     4 
     5 
     6 # 根据索引引用列表元素,例如打印【6,7】
     7 # print(x[1])
     8 # 打印【6,7】中的7
     9 print(x[1][1])
    10 
    11 
    12 
    13 
    14 
    15 # 三维
    16 y = [[[5, 7], [6, 6]], [[6, 6], [7, 8]], [7, 2], [2, 5]]
    17 # 打印[[6,6],[7,8]]这个部分中的[6,6]里的第一个6
    18 print(y[1][0][0])
    19 # y看起来有的晕,我们换一个写法
    20 
    21 y = [
    22     [[5, 7], [6, 6]],
    23     [[6, 6], [7, 8]],
    24     [7, 2],
    25     [2, 5]
    26 ]
    27 # 这样稍微清晰,一点,Y有4个元素,前面两个是两两二维组成,后面两个是单独的二维

    二、tuple(元组) 用小括号()

    元祖也是一种有序列表,和list非常类似,不同点是tuple一旦定义了就不可修改,在一定意义上这也提高了代码的安全性,查询方法和list一样,使用的时候能用tuple的就用tuple。
    在定义只有一个元素的元祖时加入"逗号"以免产生和数学运算的歧义

    可变的tuple
    当元祖内部放一个列表的时候,这个元祖中的列表的值就可以变化了,实际上tuple并没有改变,变的是内部list的值

    1 country = ('bj',['sh','gd'])
    2 print(country[1])
    3 print(country[1][0])
    4 country[1][0] ="nihao"
    5 print(country[1][0])

    三、字典

    Dictionary (字典) : 用{}来定义
    Dict={'name':'Pei', 'age':'26'}

     1 # 字典  
     2   
     3 # 我们随便设计几个城市的明天的最高温度  
     4 tem ={'北京':22,'上海':23,'深圳':24,'广州':25,'南京':26}  
     5   
     6 print(tem)  
     7   
     8 # 打印广州最高温度  
     9 print(tem['广州'])  
    10   
    11 # 字典中添加一个元素  
    12 tem['重庆'] = 28  
    13 print(tem)  
    14   
    15 # 删除上海  
    16 del tem['上海']  
    17 print(tem)  
    18   
    19 # 更新某一个值  
    20 tem['北京'] = 28  
    21 print(tem) 
    # 字典
    
    # 字典里嵌套列表
    tem = {'北京': [22, '多云'], '上海': [23, '晴天'], '深圳': [23, '小雨'], '广州': [23, '阴天']}
    
    print(tem)
    
    # 打印北京天气整体情况  
    print(tem['北京'])
    
    # 打印北京最高温度
    print(tem['北京'][0])
  • 相关阅读:
    应用 memcached 提升站点性能
    Servlet 工作原理解析
    AJAX的一些基础和AJAX的状态
    回调地狱以及用promise怎么解决回调地狱
    Ajax的封装
    promise的理解和应用
    jsonp跨域
    浅谈事件冒泡和事件捕获
    JS中的兼容问题总结
    JS写的二级导航栏(利用冒泡原理)
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/8034963.html
Copyright © 2011-2022 走看看