首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【数据分析从入门到“入坑“系列】利用Python学习数据分析-Python语法基础

Python中,a和b实际上是同一个对象,即原有列表[1, 2, 3](见图2-7)。...当你将对象作为参数传递给函数,新的局域变量创建了原始对象的引用,而不是复制。如果在函数里绑定一个新对象到一个变量,这个变动不会反映到上一层。因此可以改变可变参数的内容。...]: isinstance(b, (int, float)) Out[25]: True 属性和方法 Python对象通常都有属性(其它存储在对象内部的Python对象)和方法(对象的附属函数可以访问对象的内部数据...可变与不可对象 Python中的大多数对象,比如列表、字典、NumPy数组,和用户定义的类型(类),都是可变的。...下面的代码0到99999中3或5的倍数求和: sum = 0 for i in range(100000): # % is the modulo operator if i % 3 =

85530
您找到你想要的搜索结果了吗?
是的
没有找到

Python2】03、Python对象

一、Python对象的相关术语 Python中一切皆对象python程序中保存的所有数据都是围绕对象这个概念展开的;所有的对象都是由类实例化而来的,只不过这些类有些是python内置的类;例如,整数和浮点数...type:内置类型 instance:实例化 实例被创建后,其身份和类型就不可改变        如对象值是可修改的,则称为可变对象        如果对象的值不可修改,则称为不可对象 如果某个对象包含其它对象的引用... dict(d):创建字典;d必须元素为键值的元祖的列表  chr():将整数转换为字符 ord():将字符转换为整数值 hex():将整数转换为十六制字符串 bin():二进制 oct...: 'int' object is not iterable In [28]: In [36]: d1=dict([("x",1),("y",2)])     # d必须是元素为键值的元祖的列表...():返回一个迭代器,m.next()的结果是键值的元祖 m.itervalues():返回一个迭代器,m.next()的结果是值 m.iterkeys():返回一个迭代器,m.next()的结果是键

99520

为什么range不是迭代器?range到底是什么类型?

(PS:Python2 中 range() 生成的是列表,本文基于Python3,生成的是可迭代对象) 于是,我有了这样的疑问:为什么 range() 不生成迭代器呢?...zip() 等方法都需要接收确定的可迭代对象的参数,是它们的一种再加工的过程,因此也希望马上产出确定的结果来,所以 Python 开发者就设计了这个结果是迭代器。...这我倒一直没注意,原来 range 类型居然跟列表和元组是一样地位的基础序列!我一直记挂着字符串是不可变的序列类型,不曾想,这里还有一位不可变的序列类型呢。...TypeError: unsupported operand type(s) for *: 'range' and 'int' 那么问题来了:同样是不可变序列,为什么字符串和元组就支持上述两种操作,而偏偏...但如果我追问,为什么 range 不是迭代器呢,为什么 range 是不可变序列呢?这俩问题,你是否还能答出个自圆其说的设计思想呢?

84170

Python自学之路-内置函数说明及实例(四)

3.int(x,base=10) 不传入参数,得到结果0。 传入数值,调用其__int__()方法,浮点数将向下取整。 传入字符串,默认以10进制进行转换。...当第二个参数不提供,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数...7.len(s) 返回对象的长度,参数可以是序列(比如字符串、字节数组、元组、列表和range对象),或者是集合(比如字典、集合、不可变集合) 如果参数为其它类型,则其必须实现__len__方法,并返回整数...可以传入一个可迭代对象,如字符串,字节数组、元组、列表、range对象,结果将返回可迭代对象中元素组成的列表。...当传入多个可迭代对象,函数的参数必须提供足够多的参数,保证每个可迭代对象同一索引的值均能正确传入函数。 当传入多个可迭代对象,且它们元素长度不一致,生成的迭代器只到最短长度。

69720

python系统学习08】for循环知识点合集

for循环 目录: for简介代码格式语法格式可被迭代的数据类型列表字典字符串不可迭代的数据类型整数浮点值布尔值空值整数转化为范围后可被迭代range(y)range(x, y)range(x, y...整数、浮点数皆不可迭代,如果强行遍历会发生错误: 整数 整数对象不是可迭代的: numberValue = 2020 for num in numberValue: # TypeError: 'int...: 'float' object is not iterable   print(num) 布尔值 布尔对象不可迭代: boolVal = True for b in boolVal: # TypeError...: 'bool' object is not iterable   print(b) 空值 空值对象不可迭代: noneVal = None for n in noneVal: # TypeError...那么如果我想迭代字典,有个变量存放列表中各项所对应的偏移量(索引)呢? 通过range函数的搭配,我们不仅可以迭代整数,还能迭代列表的索引。 于是我就试了下边的写法,但是他报错了。

1.3K60

开源图书《Python完全自学教程》第5.2.1节

Python 中,作为内置对象(也是对象类型)的集合,同样具有这些特性,也能实现数学中集合的运算。可以说,Python 中的“集合”就是数学中“集合”在编程中的实现。...如果读者查看 set() 的帮助文档,会发现其参数必须是可迭代对象(这很重要)。至此,我们已经学过的 Python 内置对象中,符合此要求的有:字符串、列表、元组、字典。...'n', 'o', 'y', 'h'] 最后要说明的,不论用 set() 还是用符号 { } 创建集合对象,其的成员必须是“不可对象”——在5.1.1节中解释字典的键值的键曾使用过这个术语。...再总结一下,到现在所学的 Python 内置对象类型中,属于“不可对象”的有:浮点数、整数、复数、字符串、元组;属于“可变对象”的有:列表、字典。...: unhashable type: 'dict' 假设,集合中的成员是列表,当这个列表内的成员进行增、删、改操作,该列表本身没有变(内存地址不变),但其中的成员变化了。

38330

Python列表遇上复合赋值运算符+=

正常来讲,作用于列表,运算符+=的用法是这样的: >>> x = [] >>> x += [1, 2, 3] >>> x [1, 2, 3] 列表列表相加,从效果上来看,似乎与x = x + [1,...,类似于列表append()方法,而... = ...+...这样的写法是创新一个新对象,会修改列表首地址。...: 'int' object is not iterable 结果证明,+=和append()的用法还是有区别的。...但是,我们无意中注意到上面的异常信息说整数不可迭代的,这句话似乎有深意啊。如果我们在+=的左侧是列表,而右边是可迭代对象,会是什么结果呢?...: can only concatenate list (not "dict") to list 简单总结一下,对于列表而言,+=右侧的对象可以是任何Python迭代对象,并且+=的过程类似于循环+append

1.1K30

Python进阶-内置函数大全

bool([]) >>> False #7.bytearray() 字节数组 字节是计算机的语言,字符串是人类语言,它们之间通过编码表形成一一应的关系 a = 'python' >>> bytearray...#17.dict() 创建数据字典 dict(a=1) >>> {'a': 1} #18.dir() 不带参数返回当前范围内的变量,方法和定义的类型列表,带参数返回参数的属性,方法列表 #19...#35.input() 获取用户输入内容 >>> input('请输入:') 请输入:abc 'abc' #36.int() 将一个字符串或数值转换为一个普通整数 ''' int(x=0) ->...如果提供了参数base,但参数x并不是一个字符串,将抛出TypeError异常; 否则,参数x必须是数值(普通整数,长整数,浮点数)。通过舍去小数点来转换浮点数。...>>> type(1) #71.vars() 本函数是实现返回对象object的属性和属性值的字典对象

1.1K21

这些python3的小知识点你都知道吗?

这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation) 6、python四舍五入 int() 将小数转换为整数,小数取整会采用比较暴力的截断方式,...如果第二个参数不是类或者由类对象组成的元祖,会抛出一个 TypeError 异常。...37、python修饰符 python修饰符:其实 Python 的修饰符就是一种优雅的封装,但要注意的是只可以在模块或类定义内函数进行修饰,不允许修饰一个类,一个修饰符就是一个函数,它将被修饰的函数做为参数...当重写init() 方法一定不能忘记。 39、new()方法 new() 是在一个对象实例化的时候所调用的第一个方法。...40、python三大容器 python基于序列的三大容器是列表、元组、和字符串。 41、迭代 迭代迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。

62160

是时候用 defaultdict 和 Counter 代替 dictionary 了

因此,一门编程语言的新手总是会写出比较过度的代码,比如,对于 Java 开发者,在学习 Python 后,要写一段实现一组数字的求和代码,会是下面这样子: x=[1,2,3,4,5] sum_x =...答案当然是否定的,因为 Counter 的问题就是其数值必须是整数,本身就是用于统计数量,因此如果我们需要的数值是字符串,列表或者元组,那么就不能继续用它。...这里,应该不只是可哈希对象,还有可迭代对象,否则列表属于不可哈希对象,是否可哈希,其实是看该数据类型是否实现了 __hash__ 方法: a = (2, 1) a....,而可哈希的数据类型都是不可变的数据类型。...---- 小结 如果需要进行计数,比如计算单词出现次数,采用 Counter 是一个不错的选择,非常简洁,可读性也高;而如果需要保存的数据不是整数,并且都是统一的某个类型,比如都是列表,那么直接采用

1.5K40

python之基础篇(四)

python编程是尽量去使用自定义类型还是尽可能多的使用内置类型呢?   内置类型python本身来讲它的理解能力更好一点,其执行时所能够带来的性能上也会更好一点。...所以,除非内置类型无法提供特殊对象处理,一般而言最好都用内置类型。...实例被创建后,其身份和类型就不可改变     如果对象值是可修改的,则称为可变对象;     如果对象不可修改,则称为不可对象   如果某个对象包含其它对象的引用,则将其称为容器。  ...str()的结果与print的结果一样;       repr()表示某个对象的精确值;       format()利用特定格式将其转换成字符串     int():转换成整数     float()...:转换成浮点数     list(s):将字符串s转换成列表     tuple(s):将字符串s转换成元组     set(s):将字符串s转换成集合     frozenset(s):将字符串s转换成不可变集合

63020

python基础二

一、字典类型   *)字典是python中唯一的映射类型 ,key-value(哈希表),字典对象是可变的,但key必须用不可对象。   *)字典的创建和字典值得访问 ?  ...def fun():         pass         return  *)调用函数    python内置了很多有用的函数,我们可以直接调用:     **)sum()   ##求和内置函数...,并超出TypeError;     **)如果参数类型不对,python解释器就无法帮我们检查。    ...   可以通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(iteration)    只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代  *)如何判断对象是否可以迭代...*)利用python内置的枚举方法enumerate,把一个list变成索引-元素 ?   *)for循环里,同时引用两个变量,并且迭代显示 ?   *)列表生成式    range模块 ?

81610

记录我的Python学习笔记

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。...廖雪峰的 讲解dict和set的文章 的最后通过说明内存里面的原理讲解了可变对象不可对象!很好的理解Python和内存机制的一个知识点!...迭代 Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。...for ch in 'ABCD': print ch 所以,当我们使用for循环,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。...匿名函数 当我们在传入函数,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 在Python中,匿名函数提供了有限支持。

68520
领券