Python 【高级特性】

Python 【高级特性】

 

切片:获得str、list、tuple(它们共同点:都是有序的。而集合无序,字典中有特殊的键值对,则不可切片。)的连续的一段元素。 如何切片?需切片的对象[ a:b:c ] ,如list1[0:6:1]。

(1)[ a:b:]是半开放半封闭,读a不读b。

(2)a不写时,默认为0。

(3)c是读取步长

 1 l=["0","1","2",'3',"4"]
 2 
 3 print(l[::])      # =print(l)、=print(l[:]),都是输出全部
 4 print(l[-5:-1])   #同3
 5 print("")
 6 
 7 print(l[0:4:1])
 8 print(l[0:4:2])
 9 print("")
10 
11 print(l[:-2])      #  =print(l[0:3])

 


 

 

list()函数,功能相当于一个“强制类型转换”,将集合set、元组tuple、字符串str都转换为list列表类型。

 

1 set={"f","e","a","b"}
2 tuple=(1,6,7,10,25)
3 str="reading"
4 print(list(str))
5 print(list(set))
6 print(list(tuple))
输出
['r', 'e', 'a', 'd', 'i', 'n', 'g']
['a', 'b', 'e', 'f']
[1, 6, 7, 10, 25]

 

 


 

enumerate ()函数,将可遍历的数据类型(如:set、tuple、list、str)中的数据组合为一个个“索引序列”。

 

1 set={"book","apple","food"}
2 print(enumerate(set))
3 print(list(enumerate(set)))

输出
<enumerate object at 0x000001EE02F28A20>
[(0, 'book'), (1, 'food'), (2, 'apple')]
 

 


 

 

迭代,通过for循环、while循环遍历元组tuple、列表list、字典dictionary的方法。

 1 #list的迭代
 2 l=[0,1,2,3,4,5]
 3 
 4 for n in l:
 5     print(n,end=" ")
 6 print()
 7 
 8 i=0
 9 while i<len(l):
10     print(l[i],end=" ")
11     i+=1
12 print()
13 
14 
16 #dictionary的迭代
17 
18 dic={1:"one",2:"two",3:"three",4:"four"}
19
20 for key,value in dic.items():
21     print(key,"—>",value,end="   ")


如何判断对象obj是否可迭代?引入from  collections.abc  import  Iterable,使用  instance(obj,Iterable)函数,结果若为true,则是,反之则不是。

list、tuple、set、dictionary、字符串都是可迭代的。

 


 

 

                                      对n的运算

列表生成式,一种生成列表的方法。格式:[f(n)  for n  in  range、list1....]

 1 print("-------------- 运算begin ----------------------")
 2 list1=[2,4,6,8,10]
 3 #want  list2=[4,16,64,100],有2种方法
 4 
 5 #(1)传统的 for循环
 6 list2=[]
 7 for n in list1:
 8     m=n*n
 9     list2.append(m)
10 
11 print(list2)
12 
13 #(2)列表生成式
14 print([n*n for n in list1])  #一行顶四行
15 
16 print([n*100 for n in list1[2:4]])
17 
18 
19 
20 print("-------------- 过滤begin ----------------------")
21 
22 list1=[1,2,3,5,6,7,9,10]
23 #want list2={1,9,25,49,81},有2种方法
24 
25 #(1)传统for循环
26 list2=[]
27 for n in list1:
28     if n%2!=0:
29         m=n*n
30         list2.append(m)
31 print(list2)
32 
33 #(2)列表生成式
34 print([n*n for n in list1 if n%2!=0])
35 
36 
37 print("--------------两个字符串的组合begin ----------------------")
38 
39 s1="abc"
40 s2="ABC"
41 
42 #(1)for循环
43 s3=[]
44 for n in s1:
45     for m in s2:
46         t=n+m
47         s3.append(t)
48 print(s3)
49 print()
50 
51 #(2)列表生成式
52 print([n+m for n in s1 for m in s2])
53 
54 
55 #用 列表生成式 打印计算机当前目录下所有的文件名和目录名
56 import os
57 list2=[d for d in os.listdir("f:\\")]
58 print(list2)
59 
60 
61 print("--------------lower()、isinstance() begin -----------------")
62 list4=["Book","Eraser",20,"Rude"]
63 print([i.lower() for i in list4 if isinstance(i,str)])           
posted @ 2019-03-19 16:46 versionk 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值