zoukankan      html  css  js  c++  java
  • 数据类型之列表和元组

    一、列表

      作用:按位置存放多个值,使用“,”分隔开,使用索引取值

      类型转换:但凡能够被for循环遍历的类型都可以当做参数传给list()转成列表

      内置方法:

        1.按索引取值(优先)

    l=['a','23','world']  #按索引取值
    print(l[0])
    l[1]=98  # 按索引改值
    print(l[1])
    
    l=['a','23','world']  # 追加
    l.append('china')  # 向列表加值
    print(l)
    
    l=['a','23','world']  # 插入值
    l.insert(1,'hello')  # 在列表的索引1前面加“hello”
    print(l)
    
    l=['a','23','world']
    new_l=[1,2,3]
    l.extend(new_l)  # 迭代添加值
    print(l)  # ['a', '23', 'world', 1, 2, 3]
    
    l=['a','23','world']  # 删除值
    l.pop(0)  # 根据索引删除列表中的值,不指定索引默认删除最后一个,
    l1=l.pop(0)  # 返回删除的值
    print(l)
    print(l1)
    
    l=['a','23','world']
    l.remove('a')  # 根据元素删除,返回none
    print(l)

        2.切片(优先)

    l=['a','23','world']
    print(l[0:len(l)])   # 把完整的列表取一遍
    l111=l[:]  # 等同于copy行为(浅copy)
    print(l[:])
    l=['a','23','world']
    print(l[0:len(l)])   # 把完整的列表取一遍
    l111=l[:]  # 等同于copy行为(浅copy)
    print(l[:])
    print(l[::-1])  # 快速把列表倒过来
    
    print(len([1,2,3]))  # 统计列表元素的个数
    
    print('a' in l)
    print('a' not  in l)

        3.需要学习

    l=['a','23','world']
    l.count('a')
    print(l.count('a'))   # 统计’a'在列表中出现了几次
    
    print(l.index('a'))  # 查找元素在列表中的索引,如果找不到运行结果会报错
    
    l.clear()  # 清楚列表的所有的元素
    print(l)
    
    l.reverse()  # 将列表倒过来
    print(l)
    
    l.sort()  # 默认从小到大排序(升序# ) 列表内的元素必须是同种类型的才可以排序(字符串可以比大小(按照ASCI码表的先后顺序区别字符串的大小))
    l.sort(reverse=True)  # 默认从大到小排序(降序)  列表内的元素必须是同种类型的才可以排序
    # 列表之间也可以比大小

    二、元组

        就是“一个不可变的列表”;按照索引存放多个值,只用于取,不用于改(改变内存地址)。

        定义:()内用逗号分隔开多个类型的元素。

    t=(10,)  # 如果元组中只有一个值要这样表示
    print(t)

        类型转换  (tuple)

          按引索取值、切片、长度、循环 与列表一模一样

        内置方法:

    t=(12,23,14,4,'a','b')
    print(t.index(4))  # 找到元组中值按索引返回
    print(t.count(4))  # 统计元组中的4 有几个

    三、字典

      使用key存多个字;用{}内用逗号分隔开key:value,其中value可以是任意类型,但是key必须是不可变类型,且不能重复。

    dict={}  # 默认出来的是一个空字典
    d=dict(x=1,y=2,z=30)  # 定义字典的其他方式,方式1
    print(d)  # {'x': 1, 'y': 2, 'z': 30}
    # 方式2
    A =[
    ('name','ake'),
    ['age',18],
    ('money',1232)
    ]
    res=dict(A)
    print(res)
    
    #方式3
    keys=['name','age','weight']  # 用列表中的字符串做字典的key
    d={}.fromkeys(keys,None)
    print(d)

        内置方法(优先):

    # 按key存取值
    d={'key':111}
    # 赋值操作
    d=['key']=212,#若key存在则修改,不存在则创建新的值
    # 长度len
    d={'name':'jake','age':18,'weight':50}
    print(len(d))
    in / not in
    d={'name':'jake','age':18,'weight':50}
    print('name'in d)
    print('name'not in d)
    # 删除
    del d['name']  # 删除时要删除key
    d.pop('name')  # 根据key删除,返回key对应的value
    d.popitem()  # 随机删除,返回删除的key和对应的value

        其他(需要):

    d={'name':'jake'}
    d.clear() #清除字典
    d.update({'name':'jake','age':18,'weight':50})  # 用新的字典覆盖原来的字典
    d.get()  # key存在,返回返回对应的value值;不存在,返回None。容错性更好
    
    if 'age' in d:  # 往字典里面添加key:value
        ...
    else:
        d['age']=18
    print(d)
    d.setdefault('age',18)  # 一行代码搞定上面的内容,(执行完成之后返回key对应的value)
    print(d)
  • 相关阅读:
    bzoj 5028小Z的加油店(D12 序列gcd)(线段树+树状数组)
    蒲公英
    [APIO2012]派遣(可并堆)(D11)
    AT1219 歴史の研究(回滚莫队)
    [USACO05DEC] 布局
    小B的询问
    [HEOI2012]采花(树状数组)(暑假D11)
    [JLOI2011]飞行路线 (暑假D3 拆点+dijkstra堆优化)
    [POI2012]FES-Festival
    [国家集训队]拉拉队排练
  • 原文地址:https://www.cnblogs.com/Holmes-98/p/14221245.html
Copyright © 2011-2022 走看看