一些关于python的小技巧
- 链接列表的方式
list01 = [1,2,3]
list02 = [4,5,6]
list03 = [7,8,9]list01 + list02 + list03
[1, 2, 3, 4, 5, 6, 7, 8, 9]
~~~~ ~~~~
解包再合并:list01 = [1,2,3]
list02 = [4,5,6][*list01, *list02]
[1, 2, 3, 4, 5, 6]
~~~~ ~~~~
extend:
list01 = [1,2,3]
list02 = [4,5,6]list01.extend(list02)
list01
[1, 2, 3, 4, 5, 6]
~~~~ ~~~~
列表推导式:list01 = [1,2,3]
list02 = [4,5,6]
list03 = [7,8,9][x for l in (list01, list02, list03) for x in l]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
~~~~ ~~~~
list01 = [1,2,3]
list02 = [4,5,6]
list03 = [7,8,9]from functools import reduce
reduce(list.add, (list01, list02, list03))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
~~~~ ~~~~
- 条件语句
<on_true> if <condition> else <on_false>
<condition> and <on_true> or <on_false>
>>>msg1 = age1 > 18 and "已成年" or "未成年"
>>> msg2 = "已成年" if age2 > 18 else "未成年"
>>>
>>> print(msg1)
已成年
>>>
>>> print(msg2)
未成年
(<on_false>, <on_true>)[condition]
>>> msg1 = ("未成年", "已成年")[age1 > 18]
>>> print(msg1)
已成年
>>>
>>>
>>> msg2 = ("未成年", "已成年")[age2 > 18]
>>> print(msg2)
未成年
(lambda: <on_false>, lambda:<on_true>)[<condition>]()
{True: <on_true>, False: <on_false>}[<condition>]
((<condition>) and (<on_true>,) or (<on_false>,))[0]