鱼C论坛

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

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

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

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

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

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

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




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

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


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

  5.        
  6. >>> list2
  7. [3, 4, 5]
复制代码

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


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


4,三元运算符
  1. >>> var = 'wawawa' if 2 < 3 else 'yayaya'
  2. >>> var
  3. 'wawawa'
复制代码


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


还有什么呢?

评分

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

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

而且这些都是基础知识呀,生成器表达式和三元运算符课程就讲过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-5-1 22:11:47 | 显示全部楼层
前排
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 09:05:24 | 显示全部楼层
四楼~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 18:52:11 | 显示全部楼层
五楼~
啊呸——六楼!
楼上搭错号了!!
小甲鱼最新课程 -> https://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 中的每一个元素
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 16:00:48 | 显示全部楼层
这  “       '    两个字符串吗    为什么我找不到另一半
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 07:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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