Python 有个语法一直没理解

2017-12-09 11:36:07 +08:00
 gdzzzyyy

def char2num(s): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] map2 = map(char2num, '13579') print(map2) 我知道字符串‘ 13579 ’是可以被迭代的。 问一下 第二行的[s]是什么意思??或者我该百度什么才能理解这句话??

我知道这是字典的内容,我只是对 [ s ] 这么些很疑惑。

6599 次点击
所在节点    Python
36 条回复
lhx2008
2017-12-09 11:39:10 +08:00
s 是 char2num 的参数,比如 s 是'2'就返回字典的'2',就是 2,再用 map 施加到每个字符
还有楼主的排版要被喷了
sagaxu
2017-12-09 11:39:45 +08:00
x = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
x[s]
lhx2008
2017-12-09 11:41:09 +08:00
还不理解的话只能百度 pyhon 字典如何取出值,以及函数的参数
misaka19000
2017-12-09 11:43:37 +08:00
排版太烂不看
newhuan
2017-12-09 11:44:12 +08:00
不会 python;不过 char2num 看起来是个函数,s 应该是个参数;{}是个对象字面量,[s]是取值操作;
猜的 不过应该没错
lhx2008
2017-12-09 11:44:46 +08:00
或者再看看 map 是怎么把对象和函数进行交合的
gdzzzyyy
2017-12-09 11:53:30 +08:00
@lhx2008 额 我其实已经排版过了
我发出去就去工作了。。回来刷新一下发现错乱了。。。
cyancat0525
2017-12-09 11:53:48 +08:00
你的排版让你错过很多好答案,比如我的
gdzzzyyy
2017-12-09 11:54:56 +08:00
@sagaxu 明白了好像。这好奇葩啊 哈哈哈
gdzzzyyy
2017-12-09 11:55:13 +08:00
@lhx2008 嗯嗯再去看看 这个语法很好玩
DongDongXie
2017-12-09 12:18:33 +08:00
key 啊
jyf
2017-12-09 12:44:42 +08:00
这语法就是正常的字典取值
其实他写成

a = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return a[s]

这样你就能理解了
也不光是 python 其他几家脚本也是如此取值

这种问题 可能不是你没仔细读教材 而是对字面量的 dict 不怎么熟悉造成的
imn1
2017-12-09 13:08:35 +08:00
(True, False)[1<0]
这句能读懂不?
gdzzzyyy
2017-12-09 14:32:51 +08:00
@jyf 谢谢了。看了上面和您的解答自己又看了一下具体语法,明白了。
Kilerd
2017-12-09 15:14:58 +08:00
map(lambda x: int(x), '1359')
ballshapesdsd
2017-12-09 15:22:46 +08:00
@Kilerd map(int,'13579')
Kobayashi
2017-12-09 16:37:26 +08:00







符号
Osk
2017-12-09 16:43:45 +08:00
楼主你需要这样处理下排版

```python

your_code...

```
Xiaobaixiao
2017-12-09 17:33:27 +08:00
你可能是某个 XXX 教程的受害者
如果没有其他语言基础,建议你老老实实买本书看。
gdzzzyyy
2017-12-09 18:01:08 +08:00
@Xiaobaixiao 额 和其他语言没关把 我就是看这个{} [] 这么写没理解。
求推荐一本书把 我刚接触 python 最近在看慕课教程和廖雪峰老师的教程

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/413291

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX