python,day3:python目录操作 / enumerate / 集合set / zip拉链 / map / 迭代器iter

python下的目录操作:

import os

os.getcwd() #获取当前路劲

os.chdir(r’路径’) #进入某个目录下

f = open (‘test.txt’,’w’,encoding=’utf8’) #创建文件

os.makedirs(r’path\new_folder’) #创建文件夹

 

课程拾遗:

1.enumerate 枚举,即标注出当前的索引值

 

# author:sunyw

enumerate 枚举,即打印出当前索引值
a = range(10)
a = list(a)
print(a)
for i,v in enumerate(a):
   print(i,v)

 

2.集合
'''
集合 set,是一个无序不重复元素,基本功能包括关系测试和消除重复元素。
集合对象还支持union(联合),intersection(交),difference(差)和sysmmetric differe(对称差集)等数学运算。
sets支持 x in set,len(set),和foe x in set 。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持indexing,slicing,或其它类序列(sequence-like)的操作。

'''
#例子:
x = set('spam')
y = set(['h','a','m'])
print(x,y)

print('交集: %s'%(x&y)) #交集
print('并集:%s'%(x|y)) #并集
print('差集:%s'%(x - y)) #差集
print('对称差集:%s'%(x^y))

#用set的并集+去重功能 将新的组合变成列表 或者 元素
a = set(x|y)
print(list(a)) #列表
print(tuple(a)) #元组

#j基本操作
x.add('0')
print(x)  # 添加单项{'0', 's', 'p', 'm', 'a'}
y.update([1,2,3,4,'h','b'])
print(y) # 添加多项,只会更新不同的选项{1, 2, 3, 4, 'm', 'h', 'b', 'a'}
y.remove('h')
print(y) # 移除{1, 2, 'm', 3, 4, 'a', 'b'}

print('长度len(y):%s '%(len(y)))

print('x' in y)  # 元素x是否 是 y的成员 :是输出:true ,不是输出:false
print('x' not in y)  # 元素x是否 不是 y的成员 :是输出:true ,不是输出:false

# 集合 x 的每一个元素是否在集合 y 中,不在输出:false ,在输出:true
print(x.issubset(y))
print(x<=y)

#浅cpoy
print(x)
print('浅copy x.copy(y):%s'%(x.copy()))

#set不能返回hash值

 

3.zip 拉链

使用zip函数可以把两个列表合并起来,成为一个元组的列表。位置为一一对应

a = [1,3,5,7]
b = [2,4,6,8]
print(list(zip(a ,b)))
for i ,v in zip(a,b):

print(i,v)

特点:当长度不一致的时候,多余的会被忽略

c = [9,0]
print(list(zip(a,c)))

这里和map不一样,map缺一个需要用none补上

a = [0,1,2,3,4]
b = [5,6,7,8]
 map(none,a,b)

 

使用zip来造出字典:

keys = ['name','age']
values = ['chen zhen','22']
print(dict(zip(keys,values)))

输出结果:{'name': 'chen zhen', 'age': '22'}

 

map的小技巧,将a里面的所有元素都乘以2

a

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

c = map(lambda x:x*2,a)

c

<map object at 0x000001f0864d0780>

list(c)

[0, 2, 4, 16, 6, 8, 10, 12, 14, 16, 18]

 

遗留:map的用法

 

 

4.迭代器:

iterator是迭代器的意思,它的作用是一次产生一个数据项,直到没有为止。

python3中的用法

a = range(10)

a = iter(a)

a.__next__()

按顺序输出010 ,直到没有的时候会报错。

 

posted @ 2018-08-26 21:49  月半月半儿瓜  阅读(266)  评论(0编辑  收藏  举报