列表和元祖

list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)

tuple:将一个可迭代对象转化成元祖(如果是字典,将默认key作为列表的元素)

reversed:将一个序列翻转,并返回翻转序列的迭代器

dic = {'name':'we','age':223,'hobby':'old'}
print(reversed(l1))
for i in reversed(l1):
    print(i)            #倒着从大到小
for i in reversed(s1):
    print(i)            #字符串可以翻转
for i in reversed(dic):
    print(i)              #字典不能反转

slice:构造一个切片对象,用于列表的切片,变成一个切片模板,后面的列表只需要引用就可以

1 = [i for i in range(10)]
l2 = l1[2:5]
print(l2)
l3 = [i for i in range(10,30)]
s = slice(0,5,2)
print(l3[s])

str:将数据转化成字符串

l = [1,2,3,4,5]
l2 =str(l)
print(l2,type(l2))
for i in l:
    print(str(i),type(str(i)))

format:与具体数据相关,用于计算各种小数,精算等

print(format('test','<20'))
print(format('test','>20'))
print(format('test','^20'))

bytes:unicode ----->bytes 类型  互相转化

a1 = '太白'
print(a1.encode('utf-8'))
print(a1.encode('utf-8').decode())

bytes

a1 = '太白'
b1 = bytes(a1,encoding='utf-8')
print(b1)

相同的元素但是内存地址不一样

a1 = -100
b1 = -100
print(id(a1))
print(id(b1))

bytearry:;返回一个新字节数组,这个数组里的元素是可变的,并且每个元素值范围:0<=x<256

ret = bytearray('alex',encoding='utf-8')
print(id(ret))
print(ret)          #bytearray(b'alex')
print(ret[0])       #97  asiic码
ret[0] = 65         #把asiic码97换成65
print(ret)          #打印出相应的字母 
print(id(ret))      #bytearray(b'Alex')

memoryview

ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret))           #6,按照字节,中文三个字节一个字符
print(ret)
print(bytes(ret[:3]).decode('utf-8'))        #你
print(bytes(ret[3:]).decode('utf-8'))        #好

ord:输入字找该改字符编码unicode的位置

print(ord('a'))       #97
print(ord('中'))      #20013

chr:输入位置数字找出相应的字符 unicode

print(chr(97))
print(chr(20013))

ascii:是ascii码中的返回该值,不是则返回他在unicode的位置(16进制)

print(ascii('a'))      #'a'
print(ascii('中'))      #'\u4e2d'

repr:返回一个对象的string形式(原形毕露)

print('alex')           #alex
print(repr("alex,x"))   #'alex,x'
print(repr("{'alex':'sb'}"))    #"{'alex':'sb'}"

repr()  json pickle序列化模块,特殊字符串,Python字符串的区别

格式化输出%s,字符串,%d,数字,%r,加引号

msg = 'alex是%r的人' % ('德高望重')
print(msg)          #alex是'德高望重'的人

sort:改变的是原列表

l1 = [8,7,6,4,3,5,6,7,9,2,1]
l1.sort()
print(l1)       #原列表变换

sorted:对所有与可迭代的对象进行排序操作

l1 = [8,7,6,4,3,5,6,7,9,2,1]
print(sorted(l1))  #形成了一个新列表
print(l1)          #原列表不变

 按照列表内元祖的第二个值排序

l2 = [(1,1000),(2,18),(4,250),(3,500)]
print(sorted(l2))     #这是按照第一个值排序呢
def func(x):
    return x[1]
print(sorted(l2,key=func))

enumerate:枚举,返回一个枚举对象

l1 = [1,2,3,4,5,6,7,8,9]
for k,v in enumerate(l1):
    print(k,v)  #输出的一个是索引位置,一个是对应的值

all:可迭代对象中,全部都是True才是True

l1 = [1,'',[1,3],(2,4)]
print(all(l1))   #返回False

any:可迭代对象中,有一个True,就是True

print(any([1,0,'',()]))    #True

zip:函数用于将可迭代的对象作为参数,将对象中一应的元素打包成一个个元祖,然后返回由这些元祖组成的列表

l1  = [1,2,3,4,5,6]
tu1 = ('alex','taibai','wusir','女神')
dic = {'name':'ske','age':23,'hobby':'tea','weight':20}
print(zip(l1,tu1,dic))
for i in zip(l1,tu1,dic):
    print(i)         #(1, 'alex', 'age')  (2, 'taibai', 'hobby')....

 并且以最短的为结束

filter:过滤,迭代器

l1 = [i for i in range(10)]
def func1(x):
    return x % 2 == 0
print(list(filter(func1,l1)))      #[0, 2, 4, 6, 8]

map:会根据提供的函数对指定序列做映射,循环模式

l1 = [1,2,3,4]
print([i**2 for i in l1])
def func(x):return x**2
print(list(map(func,l1)))

匿名函数的表达式:lambda

普通函数,有且只有返回值的函数才可以用匿名函数进行简化,一行函数

func2 = lambda x:x**2
print(func2(6))

匿名函数不单独使用,多与内置函数结合

l2 = [(1,200),(2,345),(6,29384),(3,500000)]
print(sorted(l2,key=lambda x:x[1]))

 

 posted on 2018-08-22 16:01  beriuta  阅读(132)  评论(0)    收藏  举报