Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 唯一单词词典及其在文件中的位置_Python_Python 3.x_Loops_Dictionary - Fatal编程技术网

Python 唯一单词词典及其在文件中的位置

Python 唯一单词词典及其在文件中的位置,python,python-3.x,loops,dictionary,Python,Python 3.x,Loops,Dictionary,我正试图建立一个单词及其对应推特标识符的“数据库” 我想字典是最好的选择 标识符、用户、文本、单词在选项卡上拆分 Example of input : 1035421931321864192 SchipholWatch RT @vinvanoort: Zo, ik heb getekend Genoeg #geschiphol, hoogste tijd voor een eerlijk en duurzaam #luchtvaartbeleid RT @vinvanoort :

我正试图建立一个单词及其对应推特标识符的“数据库”

我想字典是最好的选择

标识符、用户、文本、单词在选项卡上拆分

Example of input : 
1035421931321864192 SchipholWatch   RT @vinvanoort: Zo, ik heb getekend  Genoeg #geschiphol, hoogste tijd voor een eerlijk en duurzaam #luchtvaartbeleid    RT @vinvanoort : Zo , ik heb getekend  Genoeg #geschiphol , hoogste tijd voor een eerlijk en duurzaam #luchtvaartbeleid

1035421930541772800 ev4uam2 RT @AfshinEllian1: Kennelijk vinden ze daar aan die gezellige tafel normaal dat steltje barbaren onze grondwettelijke rechten bedreigen. Zouden we ook voor andere buitenwettelijke dreigingen moeten capituleren? Wat een door ons gesubsidieerde domheid! #laatop1 #cartoonwedstrijd  RT @AfshinEllian1 : Kennelijk vinden ze daar aan die gezellige tafel normaal dat steltje barbaren onze grondwettelijke rechten bedreigen . Zouden we ook voor andere buitenwettelijke dreigingen moeten capituleren ? Wat een door ons gesubsidieerde domheid ! #laatop1 #cartoonwedstrijd

Example of desired output:
{'exampleword' : ['1035421930541772800', '1235424930545772800']}
当前代码:

def main():
    olist = []
    worddict = {}
    for line in sys.stdin:
        i,u,t,w = line.split('\t')
        splitword = w.split()
        olist.extend(splitword)


    for num,name in enumerate(olist):
        print("{} [{}]".format(name.strip(), num))

main()

到目前为止,我已经尝试过在这些行上迭代,并将splitword+i(tweet标识符)添加到字典中,但没有成功。

基本上,您想要的是将具有
list
值的字典“反向”到另一个具有
list
值的字典中

我从实际的推特数据中提取,因为这会混淆实际问题的答案

贪婪的实现可以是:

导入集合
def反转指令(输入):
输出=集合.defaultdict(列表)
对于键,输入中的val.items()
对于val中的项目:
输出[项目]。追加(键)
返回输出
def main():
输入={
“u123”:[“你好”,“世界”],
“u456”:[“你好”,“你”],
‘u789’:[‘你’、‘世界’],
}
输出=反向输入(输入)
打印输出
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
正如@Michael Butscher所说,您的问题的预期输出不是有效的Python字典。上述代码将输出:

{'world':['u789','u123'],'you':['u789','u456'],'hello':['u456','u123']}

此外,正如@Austin所回答的,使用“暴力”来解决这个问题并不一定是最好的解决方案。

基本上,您想要的是将一个具有
list
值的词典“反转”为另一个具有
list
值的词典

我从实际的推特数据中提取,因为这会混淆实际问题的答案

贪婪的实现可以是:

导入集合
def反转指令(输入):
输出=集合.defaultdict(列表)
对于键,输入中的val.items()
对于val中的项目:
输出[项目]。追加(键)
返回输出
def main():
输入={
“u123”:[“你好”,“世界”],
“u456”:[“你好”,“你”],
‘u789’:[‘你’、‘世界’],
}
输出=反向输入(输入)
打印输出
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
正如@Michael Butscher所说,您的问题的预期输出不是有效的Python字典。上述代码将输出:

{'world':['u789','u123'],'you':['u789','u456'],'hello':['u456','u123']}

此外,正如@Austin所回答的,使用“暴力”解决此问题不一定是最佳解决方案。

您所需的输出不是有效的Python字典(一个键似乎有两个值,或者一个键没有值),最好使用标识符作为字典的键(假设不会重复)您想要的输出不是一个有效的Python字典(一个键似乎有两个值,或者一个键没有值),最好使用标识符作为字典的键(假设不会重复)以及作为值列表的示例词。您可以使用来避免检查
是否不在
输出
中并手动初始化列表。您可以使用来避免检查
是否不在
输出
中并手动初始化列表。