python基础(序列,元祖,列表,字典,对象,类)

1、标准的序列操作:

索引、分片、乘法、判断成员资格、求长度、取最大值和最小值

2、python之删除命令的区别:

>>> x

[‘or‘, ‘not‘, ‘to‘, ‘be‘, ‘or‘, ‘be‘]

del:删除指定索引的值

>>> del x[0]

>>> x

[‘not‘, ‘to‘, ‘be‘, ‘or‘, ‘be‘]

pop:默认删除最后一个值

>>> x.pop()

‘be‘

>>> x

[‘not‘, ‘to‘, ‘be‘, ‘or‘]

除to:

>>> x.pop(1)

‘to‘

>>> x

[‘not‘,‘be‘,‘or‘]

remove:用于移除列表中某个值的第一个匹配项

>>> x.remove(‘not‘)

>>> x

[‘to‘, ‘be‘, ‘or‘]

3、内建的callable函数可以用来判断函数是否可调用。

4、内建的help函数可以得到关于函数包括它的文档字符串的信息

5、任何不知道对象到底是什么类型,但是又要对对象“做点什么”的时候,都会用到多态

6、如果想要查看一个类是否是另一个的子类,可以使用内建的issubclass函数

>>>issubclass(SPAMFilter,Filter)

7、如果想要知道已知类的基类(们),可以直接使用它的特殊特性__bases__;

>>> SPAMFilter.__bases__

8、还可以使用isinstance方法检查一个对象是否是另一个类的实例

>>>s  =  SPAMFilter()

>>>isinstance(s, SPAMFilter)

9、如果只想知道一个对象属于哪个类,可以只要__class__特性

>>>s.__class__

10、为了让代码可用,请将它模块化

11、探究模块:

---->1、导入模块:>>>import copy

---->2、查看模块包含的内容:dir

---->3、__all__变量:copy.__all__  all中会过滤一大堆其他程序不需要活不想要的变量、类和函数,如果没有设定__all__,用import * 语句默认将会输出模块中所以不以下划线开头的全局名称。

---->4、help函数:help(copy)

---->5、查看模块路径:print copy.__file__

12、我们在文件中加入了一个或两个函数,如果还希望能以脚本方式运行,则需要加入特定的if __name__ == "__main__"

13、python 脚本中声明中文

#!/usr/bin/python

#coding:utf8              这两种声明中文显示的都可以

#-*- coding:utf8-*-    这两种声明中文显示的都可以

input()  获取数字

raw_input()  获取字符串

random 随机数:

random.randint()

打印0-10:

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

当元祖中只有一个值的时候,该元祖的类型为该值的类型

>>> type(t1)

<type ‘int‘>

如果想要该值的类型为元祖类型,在值的后面加逗号就可以。

序列:列表、元组、字符串

序列的通用操作:索引、切片

列表推倒式:当从一个列表生成一个新的列表的时候使用列表推倒式

[ i*2 for i in range(1,10,2) ]

>>> sum([i for i in range(1000) if i % 3 == 0 or i % 5 == 0])

233168

生成器:

[i for i in range(1000) if i % 3 == 0 or i % 5 == 0]

把[]变成()就 成为了生成器:

(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)

文件写入:

写入文件后,如果要查看是否写入,可以f.close() 或 f.flush()

导入模块而不执行模块中的函数:

if __name__ == ‘__main__‘:

pass

字典定义:

>>> d1 = {"terry":"27","huanhuan":"26"}

>>> d1

{‘huanhuan‘: ‘26‘, ‘terry‘: ‘27‘}

生成:

空字典{}

带值的字典{‘key‘:‘value‘}

dict(list)

dict(**keywords)

fromkeys

>>> ddict = {}.fromkeys((‘x‘, ‘y‘), -1)

>>> ddict

{‘y‘: -1, ‘x‘: -1}

>>>

>>> edict = {}.fromkeys((‘foo‘, ‘bar‘))

>>> edict

{‘foo‘: None, ‘bar‘: None}

引用字典数据:

d[‘key‘]

>>> p1 = dict(name=1,age=2)

>>> p1

{‘age‘: 2, ‘name‘: 1}

修改:

dict[‘key‘] = new value

update  : 如果dict里没有,则增加,如果有,则更新

删除;

del d[‘key‘]    !=  del d

字典的遍历:

for key in dict:

print key

遍历方式1::

for key in dict:

print dict[key]

遍历方式2:

for key, value in dict2.items():

print ‘key=%s, value=%s‘ % (key, value)

字典及列表的互相转换方式:

items(): dict.items() ------> list     dict(list)   -----> list

>>> d1.items()

[(‘huanhuan‘, ‘26‘), (‘terry‘, ‘27‘)]

遍历方式2:

items方式遍历

>>> for key,value in d1.items():

...     print value

...

26

27

字典的其他操作:

1、判定是否在字典当中:

>>> d1

{‘huanhuan‘: ‘26‘, ‘terry‘: ‘27‘}

>>> "terry" in d1

True

2、访问dict:Keyerror   异常处理,

使用get方式去访问,如果有key则返回值,如果没有key则返回None,降低错误几率。

使用get的优点,不用考虑异常

>>> d1.get("terry")

‘27‘

>>> d1.get(‘mail‘)

>>> d1.get(‘mail‘,‘28‘)   ----> 可以自定义返回值

‘28‘

3、help(dict) 可查看具体应用

**************************************************************

1、x,y = 1,2   其实就是(x,y)= (1,2)

2、在python中变量名就是指针

3、修改模块后,测试时可重新加载使用:reload(module)

**************************************************************

3、update()方法可以用来将一个字典的内容添加到另外一个字典中

dict1 = {‘x’:1,‘y‘:2}

dict2 = {‘x‘:1}

dict2.update(dict1)

对象:

1、python当中,一切都是对象。

2、类型 -----类

对象一定是某种类型的,可用type()判断

类型 ----该类型的实例 --- --对象

方法(函数):行为

属性(变量):特性

3、内置的类:

4、自定义类:

类的定义:(成员级别、类级别、静态方法)

class  Class_Name(父类列表):  #可以支持多重继承;类名的定义,首字符大写

类体

例子:

class Person(object):   新式类体,一般都加上object

pass

类的使用:实例化类 ---对象

p1 = Person()

组成:(类体中)

成员方法(实例成员方法)(通过对象去调用):  成员方法实际上就是实例成员方法。

第一个形参:self   对象本身

成员属性(实例成员属性):

成员方法中

self.属性名

初始化方法 __init__(self,……):

类实例化对象、生成对象,对象自动调用__init__()

不要加return

初始化成员属性

def __init__(self,…)

类属性(类成员属性):

类对象的属性:

位置:直接出现在类体中

class ClassName(object):

类属性

类对象可以调用 Person.count

实例对象是否可以调用类属性:

1、可以,仅限于实例对象没有同名的属性

2、修改操作,则创建了实例属性,

类方法(类成员方法):   作用范围?

定义的形式:

@classmethod            #装饰器使用@操作符

def fun_name(cls):   #类方法中的第一个参数cls也是必须得。就像self

pass

实例对象是否可以调用类方法:

类名.类方法()

静态方法:

定义形式:

@staticmethod

def fun_name():      #不用加参数

pass

使用:

1、实例对象可调用静态方法

2、类对象也可调用静态方法

3、类内也可直接调用: 类名.静态方法()

**********************************************************************************************

成员方法只能被类实例调用

成员级别的可以去调用类级别的,类级别的不可以调用成员级别的。

静态方法:无法访问类属性、实例属性,相当于一个相对独立的方法,跟类其实没什么关系,换个角度来讲,其实就是放在一个类的作用域里的函数而已。

**********************************************************************************************

继承:

class Emp(Person):

def __init__(self,name,sex,dept):

Person.__init__(self,name,sex)

self.dept = dept

时间: 2024-10-13 02:46:15

python基础(序列,元祖,列表,字典,对象,类)的相关文章

python中的元祖与字典

元祖的介绍 python中的元祖与列表类似,不同之处在于元祖的元素不可修改.元祖使用小括号,列表使用方括号 <1>访问元祖                                    执行结果: <2>修改元祖                                         执行结果: 说明:python中不允许修改元祖的数据,包括不能删除其中的值 <3>元祖的内置函数count.index index和count与字符串和列表中的用法相同 例

16、python基础学习-元祖

1 #!/usr/bin/env python 2 #__author: hlc 3 #date: 2019/5/26 4 #元祖被称为只读列表,即数据可以被查询,不能被修改,切片的方式同样适用于元祖 5 #元祖写在小括号里面,使用逗号隔开,元祖中可以包含列表,不想被修改可以使用元祖 6 #元祖中一个值也需要在后面添加一个逗号,(3,) 7 8 # a = (1,2,3,4,5,6,7) 9 # b = a[0:3] #对元祖a进行切片 10 # print(b) #(1, 2, 3) 11 1

python基础--4 元祖

#元组,元素不可被修改,不能被增加或者删除 #tuple,有序 tu=(11,22,33,44,55,33) #count 获取指定元素在元祖中出现的次数 print(tu.count(33)) #index获取元素的下标值,可以设置起始和结束位置 print(tu.index(33,3,8)) tu=(1,2,3,3,(455,666,888,),({"11":22,"name":"han"})) v=list(tu)#通过类型转换修改原来tu

python基础一 -------如何在列表字典集合中根据条件筛选数据

如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 filter(lambda x:x>0,data) 3,列表推倒式 4,效率对比:还是列表推导式稍高 二:字典 1,跟列表类似,推导式 先生成随机的字典(key从1-20) 过滤掉value是负数的值 三:集合 随机生成10个元素的集合 过滤掉小于0的元素,跟字典类似

python 入门基础3(元祖,字典,集合)

## 元组 tuple 1 常用的操作方法+内置方法 #优先掌握的操作: #1 按照索引取值(正方向):只能取: t1 = (11, 22, 33, 'sea', [1, 66, 77, 100]) print(t1[4][1]) t1 = (11, 22, 33, 'sea', [1, 66, 77, 100]) # 取值print(t1[2]) #切片 (顾头不顾尾,步长) print(t1[0:3])print(t1[0:4],3) #长度 len() print(len(t1)) # 成

python数据类型:序列(字符串,元组,列表,字典)

序列通常有2个特点: 1,可以根据索引取值 2,可以切片操作 字符串,元组,列表,字典,都可以看做是序列类型 我的操作环境:Ubuntu16.04+python2.7 一.字符串类型 >按索引获取,索引从0开始 1 >>> name='ghostwu' 2 >>> name[0] 3 'g' 4 >>> name[1] 5 'h' 6 >>> name[6] 7 'u' 8 >>> >切片操作,第1个冒号

Python 小栈_03:Python的列表、元祖和字典

今日学习: 一.列表(有序的)1.索引.切片(切片后仍为列表)lis=[11,22,33,44,22,0]# v=lis[2]# print(v)# v=lis[0:2]# print(v)# 2.支持for循环,为可迭代对象# for item in lis:# print(item)# 3.修改(索引和切片都可).删除(用del).增加列表# lis[0]=22# print(lis)# lis[0:2]=22,33# print(lis)# del lis[2]# print(lis)#

基本数据类型(字符串_数字_列表_元祖_字典_集合)

基本数据类型(字符串_数字_列表_元祖_字典_集合) 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象,使用中括号表示.元组的内容不可变,可以包含任意对象,使用圆括号表示.元组 1 l = [1, 2, 3, '4', '5'] # 列表 2 l = list((1, 2, 3, '4', '5')) 3 4 t = (1, 2, 3, '4', '5') #

python :列表 字典 集合 类 ----局部变量可以改全局变量

#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def func(names): names[0]='金角大王' print("inside name:" ,names) func(names) print (names) #字符串 name='jack' name1=name name='jack_chen' print(name,name1

Python基础-列表、元祖、字典、字符串

列表和分组 序列概览: 数据结构是通过某种方式组织在一起的数据元素的集合.这些元素可以是数字.字符,甚至可以是其他数据结构. 在python中,最基本的数据结构是序列(sequence). 序列中的每一个元素被分配一个序号----即元素的位置,也称为索引.下标.第一个索引是0,第二个索引是1,以此类推. Python包含6种内建的序列,此次重点讨论最常用的两种类型:列表.元祖.其他内建序列类型包括:字符串.Unicode字符串.buffer对象和xrange对象.接下来讲解对所有序列都通用的操作