zoukankan      html  css  js  c++  java
  • Python中列表、元组、集合、字典

    Python 列表(List)

      列表是最常用的Python数据类型;

      列表中的数据项不需要具有相同的类型;

      列表也叫做数组,定义时使用[];

      通过下标访问列表中的元素,下标从 0  开始计数

      列表的增、删、改、查

      增:

    1 fruit = ['apple','orange','banana']
    2 s = 'grape'
    3 fruit.append(s) # 从末尾插入
    4 print(fruit) # ['apple', 'orange', 'banana', 'grape']

      删:

     1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
     2 fruit.remove('banana') # 删除指定元素
     3 print(fruit) # ['apple', 'orange', 'plum', 'fig', 'cherry', 'watermelon']
     4 
     5 del fruit[1] # 删除指定位置的值
     6 print(fruit) # ['apple', 'plum', 'fig', 'cherry', 'watermelon']
     7 
     8 fruit.pop() # 不传入下标,是删除最后一个值;传入下标,删除的是指定位置的值
     9 print(fruit) # ['apple', 'plum', 'fig', 'cherry']
    10 
    11 fruit.clear() # 清空列表
    12 print(fruit) #  []

      改:

    1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
    2 fruit[2] = 'strawberry' # 修改指定位置的值
    3 print(fruit) # ['apple', 'orange', 'strawberry', 'plum', 'fig', 'cherry', 'watermelon']

      查:

    1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
    2 print(fruit[0]) # 获取第0个元素 apple
    3 print(fruit[-1]) # -1 代表最后一个元素 watermelon

      切片:

    1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
    2 print(fruit[1:3]) # 取下标1到下标 3 之间的值 ,顾头不顾尾 ['orange', 'banana']
    3 print(fruit[1:-1]) # 取下标1到-1 之间的值 顾头不顾尾  ['orange', 'banana', 'plum', 'fig', 'cherry']
    4 print(fruit[3:]) # 取从第二个下标开始的后面所有元素 ['plum', 'fig', 'cherry', 'watermelon']
    5 print(fruit[::2])  #这个代表取所有的元素,然后每隔2个元素取一个 ['apple', 'banana', 'fig', 'watermelon']

    Python 元组

      元组和列表一样,唯一不一样的是,元组的值不能改变;元组的定义用小括号 ()

    Python 集合

      set是一个无序不重复元素集,集合的最好应用是去重。 

    1 a = [1,1,2,2,3,3]
    2 a_set = set(a)
    3 print(a_set) # {1, 2, 3}

    字典:

    1 字典的定义用大括号{ },每个值用 ”,“ 逗号隔开,key和value使用 ”:“ 冒号分隔
    2 字典的特性:
    3 字典是无序的,因为它没有下标,用key来当索引,所以是无序的
    4 字典的key'必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
    1 info = {
    2     'name':'xiaoming',
    3     'sex':'nan',
    4     'age':20,
    5     'id':1
    6 }
    1 print(info['name'])#通过key取值
    2 print(info.get('addr')) # 通过get取值,取不到key时不会报错,会返回 None
    3 # print(info['addr'])#通过key取值 []中取值找不到key的时候会报错KeyError: 'addr'
    4 print(info.get('id'))#通过key取值
    5 print(info.get('addr','beijing'))#通过key取值

     增:

    1 # 给字典新增一个值 === 列表中不可以这样写
    2 info['addr'] = 'beijing'
    3 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'addr': 'beijing'}
    4 
    5 # 给字典新增一个值
    6 info.setdefault('phone',13511111111)
    7 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'phone': 13511111111}

    删:del、pop()、popitem()、clear()

    1 del info['id']
    2 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20}
    3 
    4 info.pop('name')
    5 print(info) #{'sex': 'nan', 'age': 20, 'id': 1}
    6 
    7 info.popitem() # # 随机删除一个元素
    8 
    9 info.clear() # 清空字典

    查:

    1 # 字典的查询
    2 infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}
    3 print(infos.get('maryy'))#获取marry的信息,这种方式如果key不存在的话,会返回None。  None
    4 print(infos['marry'])#获取marry的信息,这种方式如果key不存在的话,会报错。 [18, 18612512981, '北京']
    5 print('marry' in infos) #判断marry是否在这个字典中,返回True或者False。 True
     1 all = {
     2     'car':{
     3         'color':['red','yellow','black'],
     4         'money':11111,
     5         'pailaing':'2.5L',
     6         'name':'A'
     7     },
     8     'car1':{
     9         'color':['red','yellow','black'],
    10         'money':11111,
    11         'pailaing':'2.5L',
    12         'country':'china'
    13     },
    14     'car2':{
    15         'color':['red','yellow','black'],
    16         'money':11111,
    17         'pailaing':'2.5L'
    18     }
    19 }

    在car1中添加颜色:orange

    1 # car1中加一个颜色
    2 all.get('car1').get('color').append('orange')
    3 print(all)
    4 
    5 all.get('car').get('color')[1] = 'orange' # 将car中的yellow改成orange
    1 # 返回字典里所有的key
    2 print(all.keys())# 返回字典里的所有的key
    3 print(all.values())# 获取字典里的所有的value
    4 print(all.items())# 获取字典的key和value,循环的时候用

    字典的合并:

     1 info = {
     2     'name':'xiaoming',
     3     'sex':'nan',
     4     'age':20,
     5     'id':1
     6 }
     7 info2 = {
     8     'name':'hhh',
     9     'sex':'nan'
    10 }
    11 # 把两个字典合并到一起,如果有一样的key,那么更新value
    12 info.update(info2)
    13 print(info) # {'name': 'hhh', 'sex': 'nan', 'age': 20, 'id': 1}

    字典的循环:

     1 # 直接循环字典,循环的是字典的key,如果想循环的时候同时获取到key和value, 那么就要用 .items()方法
     2 print(info.items()) # dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1)])
     3 
     4 # 第一种方法
     5 # items 方法的作用就是为了让你循环的时候同时把key和value取到
     6 for k,v in info.items():
     7     print('%s is %s'%(k,v))
     8 
     9 # 第二种方法
    10 for k in info2:#这种方式效率比较高
    11     print(k,info2[k])

    字典中判断key是否存在

    1 Python3中直接用 in 来判断 key 是否存在
    2 print('name' in info2) # True

    字典的内置方法:

    1 # 字典的内置方法
    2 print(info.values())#打印所有value。 dict_values(['xiaoming', 'nan', 20, 1])
    3 print(info.keys())#打印所有的key。 dict_keys(['name', 'sex', 'age', 'id'])
    4 print(info.setdefault('stu1','盛夏'))#如果这个key存在的话,那就不动它,不存在的话,添加一个。 盛夏
    5 dic2 = {'stu1':'sriba','stu10':'baidu'}
    6 info.update(dic2)#更新字典值,如果key存在的话,就更新,不存在的话就添加
    7 print(info.items())#字典转换成一个list 。 dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1), ('stu1', 'sriba'), ('stu10', 'baidu')])
  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/xyf9575/p/7449463.html
Copyright © 2011-2022 走看看