鱼C论坛

 找回密码
 立即注册
查看: 2845|回复: 7

[技术交流] python 把代码写成一行的方法 | python 小知识

[复制链接]
发表于 2020-5-1 22:10:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 liuzhengyuan 于 2020-5-1 22:24 编辑

python 把代码写成一行的方法 | python 小知识




0,分号……
分号在手,一行我有

1,exec()
这样也可以浓缩成一行呀(注意加 \n 哦~)
如:
>>> exec('n = 0\nprint(n)')
0

2,lambda() & map()
这个小甲鱼应该讲过
比如(这个程序的意思就是把列表中的所有元素转换为字符串):
>>> list1 = ['3', '4', '5']
>>> list2 = []
>>> for i in list1:
        list2.append(int(i))

        
>>> list2
[3, 4, 5]
就可以改成:注意:map 返回的是一个迭代对象,不是列表
>>> list1 = ['3', '4', '5']
>>> list2 = list(map(lambda x : int(x), list1))
>>> list2
[3, 4, 5]

3,把 for 写成一行
这真的好难理解呀
>>> ll = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> print(list(j for i in ll for j in i))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

4,三元运算符
>>> var = 'wawawa' if 2 < 3 else 'yayaya'
>>> var
'wawawa'

5,用 input() 代替要输入的变量位置
>>> i = input().split(',')
3,4,5
>>> i
['3', '4', '5']

还有什么呢?

评分

参与人数 2荣誉 +7 鱼币 +5 贡献 +3 收起 理由
WangJS + 5 + 3 + 3 感谢楼主无私奉献!
kaohsing + 2 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-1 22:15:36 | 显示全部楼层
Python 不建议用分号将两行语句合并为一行哦。

而且这些都是基础知识呀,生成器表达式和三元运算符课程就讲过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 09:13:58 From FishC Mobile | 显示全部楼层
没有必要过度追求写成一行,简单易懂最佳,如果为了追求写成一行用上各种复杂方法,代码层层嵌套难以看懂,那就违背Python的初衷了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 22:11:47 | 显示全部楼层
前排
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 09:05:24 | 显示全部楼层
四楼~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 18:52:11 | 显示全部楼层
五楼~
啊呸——六楼!
楼上搭错号了!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 09:02:29 From FishC Mobile | 显示全部楼层
第 3 个列表推导式是我常用的装逼方法
list(j for i in ll for j in i) 就相当于 [j for i in ll for j in i],
就是 i 是取 II 的每一个元素,然后 j 又取 i 中的每一个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 16:00:48 | 显示全部楼层
这  “       '    两个字符串吗    为什么我找不到另一半
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表