zoukankan      html  css  js  c++  java
  • Python学习-列表元组字典操作

    一、列表

    列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开。里面可以存放各种数据类型。

    # 例如:
    list2 = ['jason', 2, (1, 3), ['warrior', 'hello'], 'world']

    1、列表的索引和切片

    names = ['库里', '杜兰特', '考辛斯', '汤普申', '格林', '麦基']
    
    # 索引
    print(names[2])  # 考辛斯
    print(names[-1])  # 麦基
    
    # 切片
    print(names[1:3])  # ['杜兰特', '考辛斯']
    print(names[-3:])  # ['汤普申', '格林', '麦基']
    print(names[1:5:2])  # ['杜兰特', '汤普申']

    2、列表的增删改查

    2.1 新增  append, extent, insert

    names = ['汤普申', '格林', '麦基']
    # 增加
    names.append('麦考')  # ['汤普申', '格林', '麦基', '麦考']
    names.extend('麦考')  # ['汤普申', '格林', '麦基', '麦', '考']
    names.extend(['利文', '伊戈'])  # ['汤普申', '格林', '麦基', '利文', '伊戈']
    names.extend('james')  # ['汤普申', '格林', '麦基', 'j', 'a', 'm', 'e', 's']
    names.insert(1, '海沃德')  # ['汤普申', '海沃德', '格林', '麦基']
    '''
    append: 把元素追加到列表末尾
    extend: 一次性追加多个元素,参数必须是可迭代的,迭代方式增加
    insert: 在给定的索引位置前插入元素,原索引处元素后移
    '''

    2.2 删除  pop, remove, del, clear

    names = ['汤普申', '格林', '麦基']
    
    # 删除
    names.pop()  # ['汤普申', '格林']
    names.pop(1)  # ['汤普申', '麦基']
    names.remove('麦基')  # ['汤普申', '格林']
    del names[1]  # ['汤普申', '麦基']
    '''
    pop() 默认移除最后一个,有返回值; 可以指定索引,删除指定索引处的值
    remove() 只有一个参数
    '''

    clear() 方法,用于清空整个列表。

    2.3 修改

    names = ['库里', '杜兰特', '考辛斯', '汤普申', '格林', '麦基']
    
    #  修改
    names[2] = '戴维斯' # ['库里', '杜兰特', '戴维斯', '汤普申', '格林', '麦基']
    names[0:2] = '西布' # ['西', '布', '考辛斯', '汤普申', '格林', '麦基']
    names[0:2] = '东欧文' # ['东', '欧', '文', '考辛斯', '汤普申', '格林', '麦基']

    2.4 遍历查询

    names = ['汤普申', '格林', '麦基']
    
    # 遍历
    for element in names:
        print(element)
    运行结果:
    汤普申
    格林
    麦基

    2.5 其他操作

    names = [3, 1, 5, 2]
    r = names.count('格林')        # 某元素出现的次数  有返回结果
    r = names.sort()            # 元素排序,默认升序  没有返回结果
    names.sort()                # 排序,默认升序
    names.sort(reverse=True)    # 可以指定参数reverse的值,True or False,为True时,降序
    names.reverse()                # 反向排序

    二、元组

    元组和列表类似,可以理解为不可变的列表或制度列表。所有元素用括号括起来,内部元素可以是任意类型。可以进行查询、循环、索引、切片等操作,但就是不能修改。

    常用的方法与列表类似,不再赘述。

    三、字典

    字典是Python中的另一种可变容器类型, 可以存储任意类型对象。

    字典的每个键值对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号中。字典的一般格式如下:

    >>> d = {'a': 1, 'b': 2}
    >>> d
    {'a': 1, 'b': 2}
    >>> d1 = {'a': 1, 'b': 2, 'b':3}
    >>> d1
    {'a': 1, 'b': 3}
    >>>

    注:1) 字典中键是唯一的,如果存在重复的键,前面的键值会被后面相同键名所对应的值覆盖。

          2) 字典中的键是不可变的,可以是整形、字符串或元组;键所对应的值可以重复。

    1. 字典的创建

    >>> d = {'name': 'jason'}
    >>> d['age'] = 25  #直接给新增的key赋值,如果key在字典中不存在,新增此key:value对;如果key在字典中已存在,会覆盖该key对应的value。
    >>> d
    {'name': 'jason', 'age': 25}
    >>> d.setdefault('sex')  #setdefault方法在操作时分两步:1、查询这个key(第一个参数)在字典中是否存在,存在则不进行任何操作;不存在则新增到字典中 2、返回该key所对应的value
    >>> d
    {'name': 'jason', 'age': 25, 'sex': None} 
    >>> d.setdefault('age', 26)
    25
    >>> d
    {'name': 'jason', 'age': 25, 'sex': None}
    >>> d.setdefault('address', 'JL')
    'JL'
    >>> d
    {'name': 'jason', 'age': 25, 'sex': None, 'address': 'JL'}
    >>>

    2. 字典的删除

    pop(key) ; del dic[key]

    >>> d
    {'name': 'jason', 'age': 25, 'address': 'JL'}
    >>> d.pop('address')  # 参数不能为空
    'JL'
    >>> d
    {'name': 'jason', 'age': 25}
    >>> del d['age']
    >>> d
    {'name': 'jason'}

    3. 字典的修改

    >>> d
    {'name': 'jason'}
    >>> d['age'] = 26
    >>> d
    {'name': 'jason', 'age': 26}
    >>> d['name'] = 'jack'
    >>> d
    {'name': 'jack', 'age': 26}
    >>> d1 = {'name': 'james', 'sex': 'male'}
    >>> d.update(d1)  # 用d1更新d中的内容,如果key已存在,则覆盖修改,如果key不存在,则新增
    >>> d
    {'name': 'james', 'age': 26, 'sex': 'male'}
    >>>

    4. 字典的查询

    >>> d
    {'name': 'james', 'age': 26, 'sex': 'male'}
    >>> d['name']  #指定key,直接查询
    'james'
    >>> d['addr']  #key不存在,使用此方法程序会报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'addr'
    >>> d.get('age') #使用get方法
    26
    >>> d.get('addr')  #查询的key不存在,没有返回值
    >>> d.get('addr', 'JL')  #查询的key不存在,可以指定默认值(第二个参数)返回
    'JL'
    >>>

    5. 字典的其他操作

    >>> d
    {'name': 'james', 'age': 26, 'sex': 'male'}
    >>> r = d.keys()  #返回的值与列表很像,但不是列表,也是可迭代的对象;实际使用时,我们把它当成列表来使用就可以
    >>> r
    dict_keys(['name', 'age', 'sex'])
    >>> type(r)
    <class 'dict_keys'>
    >>> for i in d.keys():
    ...     print(i)
    ...
    name
    age
    sex
    >>> for i in d.values():
    ...     print(i)
    ...
    james
    26
    male
    >>> for k, v in d.items():
    ...     print(k, v)
    ...
    name james
    age 26
    sex male

    字典的内置函数:摘自菜鸟教程

    字典的内置方法:

     以上就是Python中列表、元组、字典的一些常用操作及方法。

  • 相关阅读:
    优先队列总结
    CodeForces 567D One-Dimensional Battle Ships
    CodeForces 567D One-Dimensional Battle Ships
    codeforces 1016B. Segment Occurrences
    codeforces 1016B. Segment Occurrences
    poj3249(求最长路)
    poj3249(求最长路)
    poj 2186
    2017年第八蓝桥杯C/C++ A组国赛 —— 第二题:生命游戏
    Fence Repair POJ
  • 原文地址:https://www.cnblogs.com/gandoufu/p/9274421.html
Copyright © 2011-2022 走看看