主要用途是对渐入的关键字进行“修正”,以完全匹配目标表内的查询字符。
目前是这种写法
if keystring == 'sun': keystring = 'Sun Ltd.,' if keystring == 'run': keystring = 'Running well Ltd.,' if keystring == 'fit': keystring = 'nice fitting Ltd.,'
这样简单的替换可能有几十个,长长一串特别难看。最终替换成的目标又不是一样的,也没法用函数。
求教有没有什么好看一些的写法?不用写个几十行?
1
F281M6Dh8DXpD1g2 2018 年 3 月 19 日
打表呗
|
2
rrfeng 2018 年 3 月 19 日 via Android
写个 dict 存起来。
|
3
lhx2008 2018 年 3 月 19 日 via Android
建个 map,从 map 里面取值
|
4
IanPeverell 2018 年 3 月 19 日
那就用 switch 啊
|
5
Zzde 2018 年 3 月 19 日 via iPhone
封装成方法 用 getattr 调
|
6
araraloren 2018 年 3 月 19 日
@IanPeverell python not have switch
|
7
lfzyx 2018 年 3 月 19 日
你把正确的都放在一个 list 里面,['Sun Ltd', 'Running well Ltd' , 'nice fitting Ltd ']
然后把用户输入的去匹配列表中的,取出来,不就行了 |
8
wbgbg 2018 年 3 月 19 日
表驱动了解一下
|
9
snailsir 2018 年 3 月 19 日
代码大全,表驱动法
|
10
wodexiaogou 2018 年 3 月 19 日
写个字典{'sun':'Sun Ltd'}这种,for i in dict:keystring=dict[i]
|
11
jyf 2018 年 3 月 19 日
表驱动
```python replaces = {'sun': 'sun ltd', 'oracle': 'oracle ltd', } for k in keys: v = replaces.get(k, '') ``` 不过看你这个需求有点像关键词屏蔽 :D 这种其实你用正则把许多关键词用|连起来也可以的 |
12
ToughGuy 2018 年 3 月 19 日 corps = {'sun': 'Sun Ltd.,'}
keystring = corps.get(keystring, default='Other') 这和 python 也没太大关系, 你需要的是一个 dict(map) |
13
beforeuwait 2018 年 3 月 19 日
一楼说得对
|
14
youthfire OP 感谢各位!
之前只知道 list 和 dic,但并不清楚 dict(map),表驱动这回事。只觉得尽管可以用来判断是否在一个 pool 内,但缺乏映射关系的表达。可能也是没有系统的学习有关。已经达成。谢谢! |
15
IanPeverell 2018 年 3 月 19 日
@araraloren 最近 node 写多了,忘了 python 没有了(捂脸跑)
|
16
okzpy9425 2018 年 3 月 19 日
hashmap
|
17
ivydom 2018 年 3 月 19 日
用字典
|
18
liuyin 2018 年 3 月 20 日
dict 这个主意不错
|
19
Ge4Los 2018 年 3 月 20 日
表驱动了解下。
咦,有人讲过了。 |