6.zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。
如需展示列表,需手动 list() 转换。
'''
现有两个元组,(('a'),('b'),(('c'),('d'))
请把他变成[('a','c'),('b','d')]
'''
t1=(('a'),('b'))
t2=(('c'),('d'))
print(list(zip(t1,t2)))
'''
7.静态函数(@staticmethod) : 即静态方法,主要处理与这个类的逻辑关联,它是不可以访问实例变量或类变量的。
类函数(@classmethod): 即类方法, 只能访问类变量,不能访问实例变量 , 类方法通过@classmethod装饰器实现。
成员函数 : 实例的方法, 只能通过实例进行调用,若需通过类名来调用,则应申明为类方法。
属性函数:通过@property把一个方法变成一个静态属性。
具体应用:
日期的方法, 可以通过实例化(__init__)进行数据输出, 传入参数self;
可以通过 类的方法 (@classmethod) 进行数据转换, 传入参数cls;
可以通过 静态方法(@staticmethod)进 行数据验证;
1.Python里的reduce函数有什么用法 from functools import reduce
def fun(x,y):
return 10*x+y
l=reduce(fun,(1,2,3,4))
8.,示例说明args和**kwargs
*args(表示的就是将实参中按照位置传参,多余的都是给args,切都是以元组的方式实现)
**kwargs:(表示的是按照关键字传参,保存的是字典的形式)
print(type(l),l)
2.请写出一段Python代码实现删除一个list里面的重复元素,例如l=[1,2,3,3,4,4,5]
l=[1,2,3,3,4,4,5] d ={}
d=d.fromkeys(l)
print(list(d))
3.Python里面如何生成随机数?
import random
l = random.randint(198,200)
print(l)
l = random.randrange(100)
print(l)
4.简述列表,字符串,元组,字典之间异同。
有序性:前三者都是有序的,由于此性质决定了,可以用成员运算符
in or not in,可以索引[],可以切片,拼接,len(),.count(),.index()
max(),min()
可变性:列表,字典都是可变的,都可以增删改查
#静态方法举例
class People(object):
Name = '类变量名'
def __init__(self,name):
self.name = name
@staticmethod#静态方法,是用来处理这个类的逻辑关系,不能访问类属性和实例属性
def run(self):
print('%s is a staticmthod '%self.name)
@staticmethod
def talk():
print('who is talking')
p1 = People('ll')
#print(p1.run())#不能输出
print(p1.run(p1))#解决方法:调用时主动传递实例本身给run方法
p1.talk() # 解决方法:在run方法中去掉self参数,但这也意味着,在中不能通过self.
#去调用实例中的其他变量了
#类方法举例->只能访问类变量不能访问实例变量
class Cat(object):
name = '我是类变量'
def __init__(self,name):
self.name = name
@classmethod
def sleep(self):
print('%s is a classname'%self.name)
c1 = Cat('大猫')
c1.sleep()
#属性方法举例--->成员函数:实例的方法,只能通过实例来调用,若需通过类名来调用,则应申明为类方法
#属性方法是通过@property把一个方法变成一个静态属性
class Cat(object):
def __init__(self,name):
self.name =name
@property
def talf(self):
print('%s is a property method'%self.name)
c1 = Cat('damao')
#c1.talk()调用时出现错误,因为talk此时已经变成一个静态属性了,不是方法,不需要括号
c1.talf
#作用根据需要改变属性的状态,比如获取航班的当前状态,到达,延误还是飞走