精华内容
下载资源
问答
  • (7)mapreduce 不执行reduce

    千次阅读 2017-02-28 14:41:26
    reduce函数就是选的,当不指定Reduce时候,系统会使用缺省的reduce函数(一般都没有什么操作) 不想要reduce就把其设置为NONE job.setNumReduceTasks(0);//设置个为0 ; 也可以在mapred-site.xml下设置: ...

    reduce函数就是可选的,当不指定Reduce时候,系统会使用缺省的reduce函数(一般都没有什么操作)
    不想要reduce就把其设置为NONE
    job.setNumReduceTasks(0);//设置个数为0 ;
    也可以在mapred-site.xml下设置:

    <property>
        <name>mapred.reduce.tasks</name>
        <value>0</value>
    </property>

    1.如果你的map过程中没有context.write()是不执行reduce过程的;

    2.如果你的map过程中context.write()的map后的的部分数据出现问题,不符合reduce接受的数据也会不执行reduce

    展开全文
  • 字典是什么? 字典是另外一个变的数据结构,且存储任意类型对象,比如字符串、数字、列表等。字典是由关键字和值两部分组成,也就是 key 和 value,中间用冒号分隔。这种结构类似于新华字典,字典中每一个字都...

      字典是什么?

    字典是另外一个可变的数据结构,且可存储任意类型对象,比如字符串、数字、列表等。字典是由关键字两部分组成,也就是 key 和 value,中间用冒号分隔。这种结构类似于新华字典,字典中每一个字都有一个对应的解释,具体的用法是这样的:

    字典名 = {关键字1:值,关键字2:值,关键字3:值}

    注:

     

      1)键是唯一的,创建第二个同名键的时候,第二个同名键会覆盖第一个同名键,即不允许出现两个相同的键;

     

      2)键是不可变的,不能用列表当键。

     

    eg:

    # 构建一个字典,记录各个教师的收入
    name_money = {'王老师':30000,'侯老师':28000,'李老师':33000,'张老师':25000}
    print(name_money)
    print('字典的数据类型表示是:',type(name_money))

      结果是:

    {'王老师': 30000, '侯老师': 28000, '李老师': 33000, '张老师': 25000}
    字典的数据类型表示是: <class 'dict'>

      字典的基本操作:

      常见的字典操作是访问字典、遍历字典等,实际项目中经常被使用到,比如 excel 文件读入内存以后,按照字典的方法存放,然后对其增删值。

      访问字典:

     

      访问字典也就是获取关键字对应的值,方法是指定字典名和放在方括号内的关键字,获取后的值可以赋值给变量。

      eg:

    Teacher_Li = name_money['李老师']
    print(f'李老师的月薪是:{Teacher_Li}元/月')

      结果是:

    李老师的月薪是:33000元/月

      添加、修改、删除键值对:

      字典是一种可变的数据结构,可以随时添加或者删除其中的键值对。方法是,指定字典名、用方括号括起的键和相关的值。

      eg:

    print(f'原来老师们的月薪情况是:{name_money}')
    # 新来了熊老师和陈老师,他们的月薪如下:
    name_money['熊老师'] = 15000
    name_money['陈老师'] = 50000
    print(f'新来老师后,老师们的月薪情况是:{name_money}')
    # 熊老师因为研究突破,所以工资涨了5000块,变成了20000
    name_money['熊老师'] = 15000 + 5000
    print(f'熊老师加薪后,老师们的月薪情况是:{name_money}')
    # 李老师因为个人原因,离开了学校
    del name_money['李老师']
    print(f'李老师走后,老师们的月薪情况是:{name_money}')

      结果是:

    原来老师们的月薪情况是:{'王老师': 30000, '侯老师': 28000, '李老师': 33000, '张老师': 25000}
    新来老师后,老师们的月薪情况是:{'王老师': 30000, '侯老师': 28000, '李老师': 33000, '张老师': 25000, '熊老师': 15000, '陈老师': 50000}
    熊老师加薪后,老师们的月薪情况是:{'王老师': 30000, '侯老师': 28000, '李老师': 33000, '张老师': 25000, '熊老师': 20000, '陈老师': 50000}
    李老师走后,老师们的月薪情况是:{'王老师': 30000, '侯老师': 28000, '张老师': 25000, '熊老师': 20000, '陈老师': 50000}

      创建空字典:

      在实际项目中,我们可能不知道字典中存放的内容是什么。这时,我们可以采用从空的字典开始动态创建,也就是在程序运行的时候添加具体的内容。

      常见的使用场景是:第一个:需要用户输入数据存储为字典;第二个是自动生成大量的键值对,比如爬虫,爬取豆瓣电影的排名信息。我们可以把排名放入空的字典中,然后每次爬取一个电影, 添加一个对应的键值对。

    # 从空的字典开始创建
    student_info = {} # 定义空的字典
    student_info['姓名'] = '胡晓明'
    student_info['学号'] = 201811131123
    student_info['专业'] = '信息与科学技术'
    student_info['班级'] = '一班'
    print('从空的列表中构建字典:',student_info)

      结果是:

    从空的列表中构建字典: {'姓名': '胡晓明', '学号': 201811131123, '专业': '信息与科学技术', '班级': '一班'}

      字典的内置函数

    # 内置函数
    # 内置函数cmp()的替代方法
    import operator as op op.lt('王老师','刘老师') # 相当与'王老师'<'张老师' op.le('王老师','张老师') # 相当于'王老师'<='张老师' op.eq('王老师','张老师') # 相当于'王老师'=='张老师' op.ne('王老师','张老师') # 相当于'王老师'!='张老师' op.gt('王老师','张老师') # 相当于'王老师'>'张老师' op.ge('王老师','张老师') # 相当于 '王老师'>='张老师' # 计算字典元素个数,即键的总数。 len(name_money) # 输出字典可打印的字符串表示。 str(name_money) # 内置方法 name_money1 = name_money.copy() # 复制字典 name_money1.clear() # 删除字典 name_money1['刘老师'] = 32000 name_money.fromkeys([1,3,4],'') # 创建一个新字典,其中前一个参数序列为键,后一个参数为值,适用于批量产生多个同值得键 name_money.get('王老师',None) # 获取对应键的值,如果没有该键,则返回参数2 name_money.setdefault('张老师', None) #获取对应键的值,如果没有该键,则在原字典里添加上该键值对,值为参数2 '熊老师' in name_money # 判断键是否在字典中 name_money.items() # 元组形式存储字典 name_money.keys() # 返回所有的键 name_money.values() # 返回所有的值 name_money.update(name_money1) # 合并两个字典的键值对

     

    字典与列表结合:

    把一系列字典存储在列表中,或将列表作为值放在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。这在项目中经常用到。

    什么时候用列表什么时候用字典呢? 

    当你存取的数据类型一样时,使用列表,当你存取的数据类型不一样时就用字典。

    注:数据类型不一样不是指整形或者字符型。

    举个例子:如果你需要存很多人的姓名,仅仅这一个属性,就用列表来进行处理,当你要存取不仅仅是人名,包括年龄,性别,国籍等等这些信息时,这时候用字典是最合适的。 

    字典列表

    # 合并两个字典,每个字典存为一个元素
    la = [name_money1,name_money]

      在字典中存储列表

    # 在字典中存放列表
    family = {'小米':['小米8','小米note'],'华为':['华为P20','荣耀9'],'苹果':['iphone8','iphoneX']}
    print(family)
    
    # 上述代码的运行结果是:
    # {'小米': ['小米8', '小米note'], '华为': ['华为P20', '荣耀9'], '苹果': ['iphone8', 'iphoneX']}

      在字典中存储字典

    # 在字典中存储字典
    phone = {'小米':{'小米8':3000,'小米note':5000},'华为':{'华为P20':3300,'荣耀9':2055},'苹果':{'iphone8':8000,'iphoneX':12000}}
    print(phone)
    # 找出虾米
    print(phone['小米']['小米8'])
    
    # 以上代码输出的结果是:
    # {'小米': {'小米8': 3000, '小米note': 5000}, '华为': {'华为P20': 3300, '荣耀9': 2055}, '苹果': {'iphone8': 8000, 'iphoneX': 12000}}
    # 3000

      小小的项目练习

    # 《扶摇》演员表的小练习
    # 创建一个字典存放演员信息
    Fuyao_Actor_Profile = {'杨幂':{'角色':'扶摇','配音演员':'王潇倩'},'阮经天':{'角色':'长孙无极','配音演员':'马正阳'},'刘奕君':{'角色':'齐震','配音演员':'刘奕君'},'高伟光':{'角色':'战北野','配音演员':'赵成晨'},'王劲松':{'角色':'长孙迥','配音演员':'王劲松'},'黄宥明':{'角色':'燕惊尘','配音演员':'文森'},'高瀚宇':{'角色':'江枫','配音演员':'袁聪宇'},'顾又铭':{'角色':'战北恒','配音演员':'林强'},'秦焰':{'角色':'周叔','配音演员':'宣晓鸣'},'蒋龙':{'角色':'小七','配音演员':'苏尚卿'}}
    # 打印出杨幂扮演的角色
    print(f'杨幂扮演的角色是:{Fuyao_Actor_Profile["杨幂"]["角色"]}')
    # 创建一个备份字典,备份演员信息表
    Copy_Fuyao = Fuyao_Actor_Profile.copy()
    
    # 删去阮经天的演员表
    del Fuyao_Actor_Profile['阮经天']
    print(f'删去阮经天后的演员表为:{Fuyao_Actor_Profile}')
    # 更换为演员陈晓
    Fuyao_Actor_Profile['陈晓'] = {'角色':'长孙无极','配音演员':'马正阳'}
    print(f'阮经天换为陈晓后的演员表为:{Fuyao_Actor_Profile}')
    
    # 新增加角色
    Fuyao_Actor_Profile['张雅钦'] = {'角色':'雅兰珠','配音演员':'吟良犬'}
    Fuyao_Actor_Profile['王鹤润'] = {'角色':'凤净梵','配音演员':'蔡娜'}
    Fuyao_Actor_Profile['周俐葳'] = {'角色':'时岚','配音演员':'张晗'}
    Fuyao_Actor_Profile['魏晖倪'] = {'角色':'简雪','配音演员':'曹一茜'}
    
    # 打印出阮经天所在的演员表里的演员名
    print(f'阮经天所在的演员表里的演员名:{Copy_Fuyao.keys()}')
    # 打印出阮经天所在的演员表里的角色名,并统计一共有多少个演员
    print('阮经天所在的演员表里的角色名:')
    for i in Copy_Fuyao.keys():
        print(f'{Copy_Fuyao[i]["角色"]}')
    print(f'一共有{len(Copy_Fuyao)}个角色')  
    # 扶摇的详细细节
    Fuyao_Actor_Profile.fromkeys(['杨幂'],{'名字':'扶摇','喜欢的男角色':['长孙无极','战北野','小七'],'去过的国家':['太渊','天权','天煞','璇玑']})

      

    转载于:https://www.cnblogs.com/HYLering/p/9992856.html

    展开全文
  • 缺失预处理数据22222.csv,用于...fill_value 当参数startegy为”constant"的时候可用,输入字符串或数字表示要填充的值,常用0 copy 默认为True,将创建特征矩阵的副本,反之则会将缺失值填补到原本的特征矩阵中去。
  • 1.什么是字典(dict) {键1:值1,键2:值2,键3:值3,…} 字典是***容器型***数据类型,将{}作为容器的标志,多个元素用逗号隔开。字典是***变的(支持增删改)***;字典是***无序的(不支持下标操作)***;字典...

    一、字典基础

    1.什么是字典(dict)

    {键1:值1,键2:值2,键3:值3,…}
    字典是器型数据类型,将{}作为容器的标志,多个元素用逗号隔开。字典是 可变的(支持增删改) ;字典是 无序的(不支持下标操作) ;字典在保存数据的时候, 真正想要保存的是值 ,键是用来对值进行区分的。
    字典中的元素:键值对(key:value)
    键 - 不可变(可以是数字,字符串,元组),一般是字符串;必须唯一
    值 - 任何类型的数据,可以重复

    dict1 = {} # 空字典,可变,有价值
    dict2 = {1:23,'abc':'hello',(1,2):100}
    # dict3 = {[1,2,3]:12, 34:'we'} # 报错
    print(dict1,dict2) # {} {1: 23, 'abc': 'hello', (1, 2): 100}
    

    2.什么时候用字典

    a.需要同时保存多个数据
    b.多个数据的意义不同(需要做区分)

    3.获取字典的值

    1)获取单个元素对应的值

    可以根据不同场合选择以下哪种用法

    a.字典[key]

    获取字典中指定key对应的值,如果key不存在会报错

    dog = {'name':'旺财','age':3,'breed':'二哈','gender':'母','weight':40}
    print(dog['name']) # 旺财
    # print(dog['height']) # 报错
    
    b.字典.get(key)

    获取字典中指定key对应的值,如果key不存在不会报错,返回None

      字典.get(dog.get(key,默认值))

    获取字典中指定的key对应的值,如果key不存在,返回默认值

    print(dog.get('name')) # 旺财
    print(dog.get('height')) # None
    print(dog.get('height',40)) # 40
    

    2)遍历

    a.需要掌握和使用的遍历方法(效率最高)

       for 变量 in 字典:
              循环体
    注意:变量取到的是字典中所有的key

    dog = {'name':'旺财','age':3,'breed':'二哈','gender':'母','weight':40}
    for x in dog:
        print(dog[x])
    
    b.其他两种情况(能避免使用尽量避免)

       for 变量 in 字典.values():
              循环体
    注意:变量取到的是字典所有的值,会先遍历字典取值放进容器,再遍历容器取值,效率更低

    dog = {'name':'旺财','age':3,'breed':'二哈','gender':'母','weight':40}
    for x in dog.values():
        print(x)
    

       for 变量1,变量2 in 字典.items():
              循环体
    注意:变量1能取到字典所有key,变量2能取到字典所有的值,字典.items()会把字典变成一个列表,字典里的键值对编程元组存储进列表,非常消耗资源,效率最低

    dog = {'name':'旺财','age':3,'breed':'二哈','gender':'母','weight':40}
    for x, y in dog.items():
        print(x, y)
    
    # 练习1:声明一个变量同时保存4个学生的信息(姓名、年龄、电话、成绩)
    inform = [
        {'name':'张三','age':23,'tell':'12312313','score':89},
        {'name':'李四','age':16,'tell':'890890890','score':66},
        {'name':'王五','age':19,'tell':'456464','score':77},
        {'name':'赵六','age':22,'tell':'1567567','score':88}
    ]
    print(inform)
    # 练习2:统计上面4个学生中未成年的个数
    count = 0
    for i in inform:
        if i.get('age') < 18:
            count += 1
    print('未成年个数:',count)
    

    二、字典元素的增删改

    1.添加 / 修改 键值对

    语法1:字典[key] = 值
    如果key存在,就将key对应的值修改成指定的值(改)
    如果key不存在,以’key:value’的形式添加一个键值对(增)

    movie = {'name':'西游记','time':'1978-10-23','director':'吴承恩'}
    print(movie)
    movie['time'] = '1983-10-25' # 修改
    print(movie)
    movie['score'] = 9.8 # 增加
    print(movie)
    

    语法2:字典.setdefault(键,值)
    只是添加键值对,不存在修改功能

    movie = {'name':'西游记','time':'1978-10-23','director':'吴承恩'}
    movie.setdefault('type', '神话')
    print(movie)
    

    2.删除键值对

    1)del 字典[key]

    删除指定key对应的键值对,如果key不存在会报错

    del movie['director']
    print(movie)
    

    2)字典.pop(key)

    取出字典中指定key对应的值,并且返回对应的值,取出之后字典就没有了

    type1 = movie.pop('type')
    print(movie,type1)
    

    三、字典的相关操作和方法

    1.字典相关操作

    字典不支持加法和减法运算

    1)比较运算

    字典只支持比较相等,不支持比较大小

    print({'a':1,'b':2} == {'b':2,'a':1}) # True
    

    2)in 和 not in

    数据 in 字典 - 判断字典中是否存在指定的 key
    数据 not in 字典 - 判断字典中是否不存在指定的 key

    cat = {'name':'花花','age':2,'color':'白色'}
    print('name' in cat) # True
    print('花花' in cat) # false
    

    3)相关函数

    a.len(字典) - -统计字典中键值对的个数

    print(len(cat)) # 3
    

    b.dict(数据) - 将指定的数据转换成字典
    数据要求:
        1.数据是容器型数据类型
        2.数据中的元素是有且只有两个元素的容器(小容器)
        3.小容器中的第一个元素是不可变的

    x = [(1, 2), (3, 4), (5, 6)]
    dict1 = dict(x)
    print(dict1)   # {1: 2, 3: 4, 5: 6}
    x = ('ab', 'cd', 'ef')
    dict1 = dict(x)
    print(dict1)   # {'a': 'b', 'c': 'd', 'e': 'f'}
    

    c.字典转换成其他数据类型
    bool(字典) - 空字典会转换成False,其他都是True
    list(字典) - 将字典所有的key作为列表的元素
    tuple(字典) - 将字典所有的key作为元组的元素

    cat = {'name':'花花','age':2,'color':'白色'}
    print(list(cat)) # ['name', 'age', 'color']
    

    2.相关方法

    1)字典.clear - 清空字典
    2)字典.copy() - 复制字典产生一个新的字典并且返回
    3)dict.fromkeys(序列) - 创建一个新的字典,字典的key是序列中的元素,值是None
          dict.fromkeys(序列,值) - 创建一个新的字典,字典的key是序列中的元素,值是指定的值

    dict2 = dict.fromkeys('abc')
    print(dict2) # {'a': None, 'b': None, 'c': None}
    

    4)items,keys,values
          字典.keys() - 获取字典所有的key,返回一个容器,这个容器不是列表,但可以转换
          字典.values() - 获取字典所有的值,返回一个容器,这个容器不是列表,但可以转换
          字典.items() - 获取字典所有的key和value,容器中的元素是元组,每个元组对应一个键值对,这个容器不是列表

    cat = {'name':'花花','age':2,'color':'白色'}
    print(cat.keys()) # dict_keys(['name', 'age', 'color'])
    print(cat.values()) # dict_values(['花花', 2, '白色'])
    print(cat.items()) # dict_items([('name', '花花'), ('age', 2), ('color', '白色')])
    

    5)update
          字典.update(序列)
          用序列生成的字典去更新原字典(更新方式:不存在就添加,存在就修改)

    dict3 = {'a':10, 'b':20,'c':30}
    dict3.update({'a':100,'d':40})
    print(dict3) # {'a': 100, 'b': 20, 'c': 30, 'd': 40}
    
    展开全文
  • 3.15 我要检查一个是不是在另外两个之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); 3.18 ...
  • 12、什么时候用JDBC什么时候用Hibernete; 91 13、hibernate 数据的三个状态 91 14、Hibernate中load和get的区别? 92 15、Hibernate的工作原理? 92 16、hibernate优缺点? 92 17、Hibernate是如何延迟加载的? 93 ...
  • 3.15 我要检查一个是不是在另外两个之间,为什么if(abc)不行?  3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b;  3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32);  ...
  • 3.15 我要检查一个是不是在另外两个之间,为什么if(a )不行? 69 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 69 3.17 为什么下面的代码总是给出0?double degC, degF; degC= 5.0 / 9...
  •  3.15 我要检查一个是不是在另外两个之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 3.15 我要检查一个是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • o 2.2 64 位机上的 64 位类型是什么样的? o 2.3 怎样定义和声明全局变量和函数最好? o 2.4 extern 在函数声明中是什么意思? o 2.5 关键字 auto 到底有什么用途? o 2.6 我似乎不能成功定义一个链表。我试过 ...
  • 【基础】什么时候使用字节流?什么时候用字符流? 26 【基础】GBK与UTF-8的区别 26 【基础】static、final、const的区别 26 final: 26 static: 27 【基础】如何实现对象克隆? 27 【基础】Java序列化与反序列化 27 ...
  • VFP中实现选择排序

    2009-08-08 00:18:01
     首先我们了解一下什么是“水仙花”。所谓水仙花是指一个n位数,其各位数字立方和等于该本身的值,例如:153=13+53+33 ,所以153是一个水仙花。  我们来做一个简单点儿的:求解3位数的水仙花,即100至999...
  • 后台打印出来是变了,什么变了呢?这个。。。。 :cry: [b]问题补充:[/b] to hearken01: 恩,不过我也在不同的机器上试过2个帐号,结果都一样查询错乱。 [b]问题补充:[/b] to hearken01: 你当初是怎么解决...
  • 很多时候我们操作组是采用push、pop、splice、unshift等方法来操作的,光是push你就没办法监听,更不要说pop后你设置的getter/setter就直接没了。 所以,Vue的方法是,改写数组的push、...
  • 或缺的一个数据结构,本章节最终会代码实现一个简单哈希表,来解释哈希表相关的重要概念。 对前端同学而言,哈希表是个每天用但说起来可能陌生的概念。说每天用,是因为在 JavaScript ...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.4 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 我可否用括号来强制执行我所需要的计算顺序? . . . . . . . . ....
  • 创建人、id以及是否删除的语句,然后调用的方法返回值就是查询到的数量,可是我传入创建人中文参数正确的时候,返回值为0,但是传入英文、数字都查询到,如图下,plsql也能查到,请问大神有知道是什么原因吗?...
  • <p><code>typeof操作符检查给定操作的类型。类型是<code>undefined</code>,<code>boolean</code>,<code>number</code>,<code>string</code>,<code>object</code>,<code>symbol...
  • java 面试题 总结

    2009-09-16 08:45:34
    23、什么时候用assert。 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这...
  • 26、什么时候用assert。 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    如何取得从1970年到现在的毫秒 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 137
精华内容 54
关键字:

value什么时候可数