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