liuzhengyuan 发表于 2020-5-1 22:10:10

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:}

zltzlt 发表于 2020-5-1 22:15:36

Python 不建议用分号将两行语句合并为一行哦。

而且这些都是基础知识呀,生成器表达式和三元运算符课程就讲过

hrp 发表于 2020-5-2 09:13:58

没有必要过度追求写成一行,简单易懂最佳,如果为了追求写成一行用上各种复杂方法,代码层层嵌套难以看懂,那就违背Python的初衷了。

老八秘制 发表于 2020-5-1 22:11:47

前排{:10_256:}

WangJS 发表于 2020-5-2 09:05:24

四楼~

weiter 发表于 2020-5-4 18:52:11

五楼~
啊呸——六楼!
楼上搭错号了!!

_2_ 发表于 2020-5-5 09:02:29

第 3 个列表推导式是我常用的装逼方法
list(j for i in ll for j in i) 就相当于 ,
就是 i 是取 II 的每一个元素,然后 j 又取 i 中的每一个元素

asd2155611 发表于 2020-5-5 16:00:48

这“       '    两个字符串吗    为什么我找不到另一半
页: [1]
查看完整版本: python 把代码写成一行的方法 | python 小知识