python 把代码写成一行的方法 | python 小知识
本帖最后由 liuzhengyuan 于 2020-5-1 22:24 编辑python 把代码写成一行的方法 | python 小知识
0,分号……
分号在手,一行我有 {:10_297:}
1,exec()
这样也可以浓缩成一行呀(注意加 \n 哦~){:10_264:}
如:
>>> exec('n = 0\nprint(n)')
0
2,lambda() & map()
这个小甲鱼应该讲过
比如(这个程序的意思就是把列表中的所有元素转换为字符串):
>>> list1 = ['3', '4', '5']
>>> list2 = []
>>> for i in list1:
list2.append(int(i))
>>> list2
就可以改成:注意:map 返回的是一个迭代对象,不是列表
>>> list1 = ['3', '4', '5']
>>> list2 = list(map(lambda x : int(x), list1))
>>> list2
3,把 for 写成一行
这真的好难理解呀{:10_269:}
>>> ll = [, , ]
>>> print(list(j for i in ll for j in i))
4,三元运算符
>>> var = 'wawawa' if 2 < 3 else 'yayaya'
>>> var
'wawawa'
5,用 input() 代替要输入的变量位置
>>> i = input().split(',')
3,4,5
>>> i
['3', '4', '5']
还有什么呢?{:10_243:} Python 不建议用分号将两行语句合并为一行哦。
而且这些都是基础知识呀,生成器表达式和三元运算符课程就讲过 没有必要过度追求写成一行,简单易懂最佳,如果为了追求写成一行用上各种复杂方法,代码层层嵌套难以看懂,那就违背Python的初衷了。 前排{:10_256:} 四楼~ 五楼~
啊呸——六楼!
楼上搭错号了!!
第 3 个列表推导式是我常用的装逼方法
list(j for i in ll for j in i) 就相当于 ,
就是 i 是取 II 的每一个元素,然后 j 又取 i 中的每一个元素 这“ ' 两个字符串吗 为什么我找不到另一半
页:
[1]