python 切片/迭代/列表生成式

 1 print("_______________________切片___________________________")
 2 name = ['star','keatiuny','bob','jack','tom']
 3 #取列表中前3个元素
 4 name1 = name[:3]
 5 #for循环取前3个元素
 6 r = []
 7 n = 3
 8 for i in range(n):
 9     r.append(name[i])
10 print(r)
11 >>>['star','keatiuny','bob']
12 print(name1)
13 >>>['star','keatiuny','bob']
14 #tuple和字符串也可以进行切片操作
15 
16 print("_______________________迭代___________________________")
17 #迭代:给定一个list或tuple,通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(iteration)
18 #list或元组称为可迭代对象
19 dic = {'a':1,'b':2,'c':3}
20 for key in dic:
21     print(key)
22 #默认情况下,字典迭代的是key
23 #迭代字典的value:for i in dic.values()
24 #同时迭代key和value:for k,v in dic.items()
25 
26 #迭代value:
27 for v in dic.values():
28     print(v)
29 
30 #同时迭代key和value
31 for k,v in dic.items:
32     print("%s=%s"%(k,v))
33 
34 #判断一个对象是否为可迭代对象:collections模块的iterable类型判断
35 from collections import Iterable
36 #判断字符串是否为可迭代对象,返回一个bool值(True)
37 isinstance('abc',Iterable)        #字符串    返回True
38 isinstance([1,23,4],Iterable)    #list  返回True
39 isinstance(1233,Iterable)        #整数    返回False

列表生成式

print("_______________________列表生产式___________________________")
#用来创建list的生成式
list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = list(range(1,11))
print(list1)
print(list2)
#生成[1*1,2*2,3*3,4*4,5*5,6*6,7*7,8*8,9*9,10*,10]
print("_____________使用for循环____________________")
l = []
for i in range(1,11):
    l.append(i*i)
print(l)
print("_____________使用代码生成式____________________")
l2 = [i*i for i in range(1,11)]
print(l2)

#列出当前目录下的所有文件及文件夹 os.listdir()
import os
F = [f for f in os.listdir('.')]
print(F)

#小练习:判断L1中的元素是否为str,并将大写字母全部换成小写
L1 = ['Hello', 'World', 18, 'Apple', None]
L1 = [s.lower() for s in L1 if isinstance(s,str)]
print(L1)

 

posted @ 2017-09-30 09:27  keatiuny  阅读(142)  评论(0)    收藏  举报