Python语言的特点技巧有哪些?

图片[1]-Python语言的特点技巧有哪些?-uusu优素-乐高,模型,3d打印,编程

每个窍门或语言特性只能通过实例来验证,无需过多解释。虽然我已尽力使例子清晰,但它们中的一些仍会看起来有些复杂,这取决于你的熟悉程度。所以如果看过例子后还不清楚的话,标题能够提供足够的信息让你通过Google获取详细的内容。

列表按难度排序,常用的语言特征和技巧放在前面。

1.1 分拆

>>>a,b,c=1,2,3
>>>a,b,c
(1,2,3)
>>>a,b,c=[1,2,3]
>>>a,b,c
(1,2,3)
>>>a,b,c=(2*i+1foriinrange(3))
>>>a,b,c
(1,3,5)
>>>a,(b,c),d=[1,(2,3),4]
>>>a
1
>>>b
2
>>>c
3
>>>d
4

1.2 交换变量分拆

>>>a,b=1,2
>>>a,b=b,a
>>>a,b
(2,1)

1.3 拓展分拆 (Python 3下适用)

>>>a,*b,c=[1,2,3,4,5]
>>>a
1
>>>b
[2,3,4]
>>>c
5

1.4 负索引

>>>a=[0,1,2,3,4,5,6,7,8,9,10]
>>>a[-1]
10
>>>a[-3]
8

1.5 列表切片 (a[start:end])

>>>a=[0,1,2,3,4,5,6,7,8,9,10]
>>>a[2:8]
[2,3,4,5,6,7]

1.6 使用负索引的列表切片

>>>a=[0,1,2,3,4,5,6,7,8,9,10]
>>>a[-4:-2]
[7,8]

1.7 带步进值的列表切片 (a[start:end:step])

>>>a=[0,1,2,3,4,5,6,7,8,9,10]
>>>a[::2]
[0,2,4,6,8,10]
>>>a[::3]
[0,3,6,9]
>>>a[2:8:2]
[2,4,6]

1.8 负步进值得列表切片

>>>a=[0,1,2,3,4,5,6,7,8,9,10]
>>>a[::-1]
[10,9,8,7,6,5,4,3,2,1,0]
>>>a[::-2]
[10,8,6,4,2,0]

1.9 列表切片赋值

>>>a=[1,2,3,4,5]
>>>a[2:3]=[0,0]
>>>a
[1,2,0,0,4,5]
>>>a[1:1]=[8,9]
>>>a
[1,8,9,2,0,0,4,5]
>>>a[1:-1]=[]
>>>a
[1,5]

1.10 命名切片 (slice(start, end, step))

>>>a=[0,1,2,3,4,5]
>>>LASTTHREE=slice(-3,None)
>>>LASTTHREE
slice(-3,None,None)
>>>a[LASTTHREE]
[3,4,5]

1.11 zip打包解包列表和倍数

>>>a=[1,2,3]
>>>b=['a','b','c']
>>>z=zip(a,b)
>>>z
[(1,'a'),(2,'b'),(3,'c')]
>>>zip(*z)
[(1,2,3),('a','b','c')]

1.12 使用zip合并相邻的列表项

>>>a=[1,2,3,4,5,6]
>>>zip(*([iter(a)]*2))
[(1,2),(3,4),(5,6)]
>>>group_adjacent=lambdaa,k:zip(*([iter(a)]*k))
>>>group_adjacent(a,3)
[(1,2,3),(4,5,6)]
>>>group_adjacent(a,2)
[(1,2),(3,4),(5,6)]
>>>group_adjacent(a,1)
[(1,),(2,),(3,),(4,),(5,),(6,)]
>>>zip(a[::2],a[1::2])
[(1,2),(3,4),(5,6)]
>>>zip(a[::3],a[1::3],a[2::3])
[(1,2,3),(4,5,6)]
>>>group_adjacent=lambdaa,k:zip(*(a[i::k]foriinrange(k)))
>>>group_adjacent(a,3)
[(1,2,3),(4,5,6)]
>>>group_adjacent(a,2)
[(1,2),(3,4),(5,6)]
>>>group_adjacent(a,1)
[(1,),(2,),(3,),(4,),(5,),(6,)]

1.13 使用zip和iterators生成滑动窗口 (n -grams)

>>>fromitertoolsimportislice
>>>defn_grams(a,n):
...z=(islice(a,i,None)foriinrange(n))
...returnzip(*z)
...
>>>a=[1,2,3,4,5,6]
>>>n_grams(a,3)
[(1,2,3),(2,3,4),(3,4,5),(4,5,6)]
>>>n_grams(a,2)
[(1,2),(2,3),(3,4),(4,5),(5,6)]
>>>n_grams(a,4)
[(1,2,3,4),(2,3,4,5),(3,4,5,6)]
>>>m={'a':1,'b':2,'c':3,'d':4}
>>>m.items()
[('a',1),('c',3),('b',2),('d',4)]
>>>zip(m.values(),m.keys())
[(1,'a'),(3,'c'),(2,'b'),(4,'d')]
>>>mi=dict(zip(m.values(),m.keys()))
>>>mi
{1:'a',2:'b',3:'c',4:'d'}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容