Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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 - Fatal编程技术网

带文件的Python词典

带文件的Python词典,python,Python,我有一个.txt文件,其中包含如下文本行: 天宝号LO-1-1-1-11-11-11-11-1-1 1-1-11101-1-11-11-11 我的任务是定义一个过程,该过程返回一个字典,该字典的键是文本行的第一个元素,即“Godbals”,值是-1,1,0的序列 我已经通过open方法导入了这个文件,并将其分配给变量strlist 这是我写的一段代码 def create_voting_dict(strlist): D = {} splitlist = [k.split() f

我有一个.txt文件,其中包含如下文本行:

天宝号LO-1-1-1-11-11-11-11-1-1 1-1-11101-1-11-11-11

我的任务是定义一个过程,该过程返回一个字典,该字典的键是文本行的第一个元素,即“Godbals”,值是-1,1,0的序列

我已经通过open方法导入了这个文件,并将其分配给变量strlist

这是我写的一段代码

def create_voting_dict(strlist):
    D = {} 
    splitlist = [k.split() for  k in strlist]
    for i in range(len(strlist)):
        intlist = [int(j) for j in splitlist[i][3:]]
        D.update({splitlist[i][0]:None })
        for p in intlist:
            D[splitlist[i][0]] = p
    return D
这将返回此词典

{'Cornyn': 1, 'McConnell': 1, 'Bingaman': -1, 'Talent': 1, 'Cochran': 1, 'Craig': -1, 'Lugar': 1, 'Clinton': 1, 'Domenici': 1, 'Rockefeller': -1, 'Gregg': 1, 'Lautenberg': -1, 'Chambliss': 1, 'Voinovich': -1, 'Murkowski': 1, 'Levin': -1, 'Pryor': 1, 'Martinez': 1, 'Harkin': -1, 'Johnson': 1, 'Bayh': -1, 'Byrd': -1, 'Coburn': 1, 'Bunning': 1, 'Reid': -1, 'Kennedy': -1, 'Shelby': 0, 'Sarbanes': -1, 'Bond': 1, 'Nelson1': 1, 'Dole': 1, 'Coleman': 1, 'Dorgan': -1, 'Durbin': -1, 'Reed': -1, 'Landrieu': 1, 'Schumer': 1, 'Santorum': 1, 'Snowe': 1, 'Lieberman': -1, 'Hutchison': 1, 'Lincoln': 1, 'DeMint': 1, 'Isakson': 1, 'Inhofe': 1, 'Dodd': -1, 'DeWine': 1, 'Frist': 1, 'Bennett': 1, 'Smith': 1, 'Thomas': 1, 'Enzi': 1, 'Thune': 1, 'Burr': -1, 'Boxer': -1, 'Allen': 1, 'Nelson2': 1, 'Kerry': -1, 'Murray': -1, 'Burns': 1, 'Allard': 1, 'Salazar': 1, 'Jeffords': -1, 'Akaka': -1, 'Sununu': 1, 'Biden': -1, 'Obama': -1, 'Cantwell': 1, 'Roberts': 1, 'Alexander': 1, 'McCain': 1, 'Collins': 1, 'Inouye': -1, 'Lott': 0, 'Feingold': -1, 'Kyl': 1, 'Feinstein': 1, 'Kohl': -1, 'Specter': 1, 'Stevens': 1, 'Ensign': 1, 'Carper': 1, 'Hatch': 1, 'Vitter': 1, 'Baucus': 1, 'Graham': 1, 'Grassley': 1, 'Wyden': -1, 'Hagel': 1, 'Dayton': 1, 'Mikulski': -1, 'Stabenow': 1, 'Leahy': -1, 'Sessions': 1, 'Crapo': 1, 'Conrad': -1, 'Warner': 1, 'Chafee': -1, 'Brownback': 1}
我知道我的代码有缺陷,我想找到一种方法,将-1,0,1迭代地附加到字典元素的值中。。。或者类似的东西。

您可以使用
maxslit
3来设置字符串,并使用
set

>>> s="Godbals NO LO -1 -1 1 1 1 -1 -1 1 1 1 1 1 1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 1 1 1 1 1 1 0 0 1 -1 -1 1 -1 1 -1 1 1 -1"
>>> l=s.split(' ',3)
>>> d={l[0]:set(l[-1].split())}
>>> d
{'Godbals': set(['1', '0', '-1'])}

您可以开始将字符串拆分为一个空格

split_line = line.split(" ")
然后,开始对其进行索引。据我所知,你的钥匙是

key = split_line[0]
value = split_line[3:]
final_dict = {key : value}
希望有帮助