python 之 列表与字典

本文详细介绍了Python中列表和字典的基本概念、属性及常用操作方法,包括定义、增删改查等实用技巧。

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

1.4 列表与字典

列表与字典,这两种类型,都是各种类型的集合,以列表为例,如果列表中包含列表,就形成嵌套。 这两种类型几乎是所有python脚本的主要工作组件 。 这种结构信息是可变的可修改的。不像常量,一旦定义便不能再修改。

  • [X] 列表 列表有以下几大属性,或者说是特点:
    1. 任意对象的有序集合
    2. 通过偏移量来读取
    3. 长度可变,异构及任意嵌套
    4. 属于可变序列分类 与字符串、常量相比而言,列表是可变的,可以进行修改,增加、合并 ,删除等操作。
    5. 对象引用数组
    6. 列表元素以逗号分隔

    在标准python解析器中,列表就是C数组,而不是链接结构。

    • [X] 列表的操作

      关于列表的操作,我们可以通过help(list)或者 dir(list) ,或者用真实的列表替换关键词list 来查看帮助文档。 除此之外,还有一些其他固定的可用操作。 这里先了解一些常用的简单的列表操作方法:

      Table 7: 列表操作
      方法释义示例
      l=[]定义列表l=['a',2,['b','c,d']]
      l=list(…)定义列表 
      l=[c * 4 for c in 'hal']定义列表 
      l.append()列表末尾添加新成员,列表、字典作用新成员l.append(['a',2,'b']
      l.clear()清空列表l.clear()
      l.copy(value)复制列表l.copy()
      l.count(value)统计某个成员在列表中出现的次数l.count('b'),l.count(l12)
      l.extend(value)添加新的内容(如果是列表、字典,则将l.extend([3,{4,5}])
       字典、列表中的成员逐一添加至原列表,其 
       子列表作用一个整体添加)。如果type(value 
       )=list 则合并,如果type(value)=set,那么 
       字典中的值会反序添加,如果是字符串,则转 
       化为字典进行合并。 
       列表不能添加如l.extend({4,['a']}) 
      l.index(value,[start,[stop]])返回列表中的值对应的索引序号。在。 
       start –> stop之间如果不存在想要查找 
       的值,则报错l.index({4,5})
      l.insert(index,object)在指定索引位置  添加新的列表成员l.insert(2,{'a','b'})
      l.pop([index])根据索引位置删除相应内容。 
       index的值必须是单个整数,不能以列表、字 
       典等形式传入,也就是只能一次删除一个列表 
       成员。如果指定索引不存在则报错。如果不指l.pop(3)
       定索引值,则默认删除最后一个成员。 
      l.remove(object)从列表中剔除成员。object必须是完整的成员l.remove({'a','b'})
      l.reverse()将列表成员进行反序排列l.reverse()
      l.sort(key=None,reverse=False))该方法默认升序排列。当reverse=Ture时,进 
       行反序排列。但是python3.0前后有点区别: 
       3.0之前,允许不同元素之间进行排序 。 
       3.0之后,不允许不同类型的列表元素进行排序l.sort()
      l*2重复列表内容 
      list('hal')+list('berd')列表合并,实际上是生成了一个新的列表 
      l[i:j]=[]根据索引替换相应位置的列表元素.从第i个 
       元素开始,包含j个元素。 
      len(l)返回列表元素的个数 
      3 in l判断列表l中是否为有3的元素,注意数据类型 
      del l[ [index] ]删除列表中的某个元素,或者删除整个列表 
      思考 
      通过使用索引,在列表首尾添加新元素。
      答案:
      l[len[l]:]=[x]; l[:0]=[x]
      使用索引进行列表调整,可以实现append,remove,pop,insert等功能.
      请注意,添加新元素的数据类型。比如列表与字符串
      
  • [X] 字典 字典可以说是列表以外最灵活的内置数据结构。 字典有以下属性:
    1. 通过键来存取值而不是通过偏移量,键必须是不可变类型。
    2. 字典元素为无序集合
    3. 可变长,异构,任意嵌套
    4. 属于可变映射类型
    5. 散列表。通过hash运算进行数据检索。与列表一样存储对象的引用而不是拷贝。
      • 字典操作
        Table 8: 字典操作
        方法释义示例
        d={}定义空字典d={}
        d={'a':'b','name':'halberd'}定义字典d={'name':'halberd'}
        d=dict(mappint)定义字典,这种写法比较复杂难懂。由于dict只能接受d=dict(( ('key1','value1'),('key2','value2'),… ))
         一个参数,因此在dict()方法内部必须包含一个代表 
         整体的符号,可用的为“(),”“[],” 但是"{},"不能用,dict(()) 
         或者dict([]),在最内部为key/value的值信息,这样 
         形成三层结构: 
         第一层为:dict() 
         第二层为:dict(()) 或者 dict([]) 
         第三层为:dict((['key1','value1'],('key2','value2'),…)) 
        d=dict(zip(keys,values))定义字典。 其中keys,与values 的类型分别可以为字符串, 
         列表,或者range()等函数返回的一系列值等d=dict(zip('abcd',range(1,5)))
        d.clear()清空字典,不需要传入任何参数。d.clear()
        d.copy()将原字典复制出一个新的字典e=d.copy()
        d.fromkeys(iterable,value)定义一个字典中的keys,并赋予相同的值.value默认为Nonedict.fromkeys(['a','b'],'123')
         iterable 可以是列表,也可以是字典。如果是列表,则列表中dict.fromkeys({'name':'halberd','age':20},100)
         每个成员都会转换成key,如果是字典,则将value 赋值给字典 
         中的key 
        d.get(key[,values])取出字典中键对应的值。也可以使用value给予一个新的值。但 
         对原来的字典无影响。不写value部分的时候取出的是字典中key 
         对应的值,此时相当于dict[key]。写value里,得到的结果是d.get('name'[,'guess'])
         value 
        d.items()以列表返回可遍历的(键, 值) 元组数组d.items()
        d.keys()以列表返回一个字典所有的键d.keys()
        d.values以列表返回一个字典所有的值d.values()
        d.pop(key[,value])删除字典中的key及对应的值,同 del d[key]d.pop('name'[,'halberd'])
        d.popitem()此方法不需要任何参数,默认删除最后一个key:value. 返回的d={'name':'halberd','age':2,'gender':'male'}
         是被删除的key 及对应的value,以元组形式返回,但是如果是空d.popitem()
         字典,则返回错误信息 
        d.setdefault(key[,value]))返回key对应的值,但是如果key在原字典中不存在,则追加d.setdefault('gender','male')
         如果key不存在,并且没有提供对应的value,则默认是'None' 
        d.update()1. 合并字典。比如dict1与dict2 dict1.update(dict2)会将d2={'gender':'male'}
         dict2 的内容合并至dict1,如果dict2包含于dict1,则无变化d.update(d2)
         2. dict1使用update将其他类型的数据,以字典key:value的形d.update(work='IT-migrant-worker',married='NO')
         式合并到dict1中d.update((['work','IT-migrant-worker'],['married','NO']))
          d.update([('work','IT-migrant-worker'),('married','NO')])
          d.update(zip(('work','married'),('IT-migrant-worker','NO')))
          d.update(zip(['work','married'],['IT-migrant-worker','NO']))
        len(dict)计算字典key=value的个数len(d)
        del dict[key]删除字典中某一个key 及对应值,同dict.pop(key)del d['name']
        del dict删除字典del d
 

转载于:https://www.cnblogs.com/halberd-lee/p/8087908.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值