首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新手必看:Python的非常有用的技巧

函数连续调用

defadd(x):

classAddNum(int):

def__call__(self, x):

returnAddNum(self.numerator + x)

returnAddNum(x)

printadd(2)(3)(5)

# 10

printadd(2)(3)(4)(5)(6)(7)

# 27

# javascript 版

var add = function(x){

var addNum = function(x){

returnadd(addNum + x);

};

addNum.toString = function(){

returnx;

}

returnaddNum;

}

add(2)(3)(5)//10

add(2)(3)(4)(5)(6)(7)//27

默认值陷阱

>>>defevil(v=[]):

...v.append(1)

...printv

...

>>>evil()

[1]

>>>evil()

[1,

1]

读写csv文件

importcsv

withopen('data.csv',

'rb')

asf:

reader = csv.reader(f)

forrow

inreader:

printrow

# 向csv文件写入

importcsv

withopen(

'data.csv',

'wb')

asf:

writer = csv.writer(f)

writer.writerow(['name',

'address',

'age'])

# 单行写入

data = [

(

'xiaoming ','china','10'),

(

'Lily',

'USA',

'12')]

writer.writerows(data)

# 多行写入

数制转换

>>>int('1000',

2)

8

>>>int('A',

16)

10

格式化 json

echo'{"k": "v"}'| python-m json.tool

list 扁平化

list_ = [[1,

2,

3], [4,

5,

6], [7,

8,

9]]

[k

fori

inlist_

fork

ini]

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

importnumpy

asnp

printnp.r_[[1,

2,

3], [4,

5,

6], [7,

8,

9]]

importitertools

printlist(itertools.chain(*[[1,

2,

3], [4,

5,

6], [7,

8,

9]]))

sum(list_, [])

flatten =

lambdax: [y

forl

inx

fory

inflatten(l)]

iftype(x)

islist

else[x]

flatten(list_)

list 合并

>>>a = [1,

3,

5,

7,

9]

>>>b = [2,

3,

4,

5,

6]

>>>c = [5,

6,

7,

8,

9]

>>>list(set().union(a, b, c))

[1,

2,

3,

4,

5,

6,

7,

8,

9]

出现次数最多的 2 个字母

fromcollections

importCounter

c = Counter('hello world')

print(c.most_common(2))

#[('l', 3), ('o', 2)]

谨慎使用

eval("__import__('os').system('rm -rf /')", {})

置换矩阵

matrix = [[1,

2,

3],[4,

5,

6]]

res = zip( *matrix )

# res = [(1, 4), (2, 5), (3, 6)]

列表推导

[item**2foritem

inlst

ifitem %

2]

map(lambdaitem: item **

2, filter(lambdaitem: item %

2, lst))

>>>list(map(str, [1,

2,

3,

4,

5,

6,

7,

8,

9]))

['1',

'2',

'3',

'4',

'5',

'6',

'7',

'8',

'9']

排列组合

>>>forp

initertools.permutations([1,

2,

3,

4]):

...print''.join(str(x)

forx

inp)

...

1234

1243

1324

1342

1423

1432

2134

2143

2314

2341

2413

2431

3124

3142

3214

3241

3412

3421

4123

4132

4213

4231

4312

4321

>>>forc

initertools.combinations([1,

2,

3,

4,

5],

3):

...print''.join(str(x)

forx

inc)

...

123

124

125

134

135

145

234

235

245

345

>>>forc

initertools.combinations_with_replacement([1,

2,

3],

2):

...print''.join(str(x)

forx

inc)

...

11

12

13

22

23

33

>>>forp

initertools.product([1,

2,

3], [4,

5]):

(1,

4)

(1,

5)

(2,

4)

(2,

5)

(3,

4)

(3,

5)

默认字典

>>>m = dict()

>>>m['a']

Traceback (most recent call last):

File

"", line

1,

in

KeyError:

'a'

>>>

>>>m = collections.defaultdict(int)

>>>m['a']

>>>m['b']

>>>m = collections.defaultdict(str)

>>>m['a']

''

>>>m['b'] +=

'a'

>>>m['b']

'a'

>>>m = collections.defaultdict(lambda:

'[default value]')

>>>m['a']

'[default value]'

>>>m['b']

'[default value]'

反转字典

>>>m = {'a':

1,

'b':

2,

'c':

3,

'd':

4}

>>>m

{'d':

4,

'a':

1,

'b':

2,

'c':

3}

>>>

{1:

'a',

2:

'b',

3:

'c',

4:

'd'}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200305A0IO7600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券