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