我是python的新手,我的编码有问题。
我有一个大文本,这个文本中的每个单词都有一个标记(对于这些单词所属的女性词语)。
元组看起来像这样:
tuple1=[(bag, NN), (run, VB), (window, NN), (act, NN), (act,VB)]
如你所见,"行为"可以是动词和名词。因此,当我想将这个元组变成字典时,我想要两个{act:NN,act:VB}。如果不覆盖已有的密钥,我无法做到这一点。
这是我到目前为止所做的:
dicts={}
for i in tuple1:
dicts[i[0]]=i[1]
ALSO: 如何将每个单词都写成小写字母或大字母? 因此,例如""之间没有区别。和""?
谢谢!
答案 0 :(得分:2)
dicts = {}
for key, value in data:
dicts.setdefault(key,[]).append(value)
返回:
{'bag': ['NN'], 'run': ['VB'], 'window': ['NN'], 'act': ['NN', 'VB']}
答案 1 :(得分:1)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//background color of text field
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = .cyan
}
经过测试:
dict1 = {}
tuple1 = ((<word>, <type>), ...)
for k, v in tuple1:
if k in dict1 and v in dict1[k]:
continue
elif k not in dict1:
dict1[k] = [v]
elif v not in dict1[k]:
dict1[k].append(v)
给出的输出是:
(('bag', 'noun'), ('run', 'verb'), ('run', 'noun'), ('act', 'noun'), ('act', 'verb'))
我的一般想法是,您可以简单地将一个键分配给包含其单词类型的列表,因此它不需要添加前缀为{'bag': ['noun'], 'run': ['verb', 'noun'], 'act': ['noun', 'verb']}
或{{1}的其他键。等等。
在后一个问题上,要将单词(字符串)转换为大写或小写,只需调用verb_
将noun_
变为str.lower()
,将"Hello, world!"
变为{{} 1}}进入"hello, world!"