如何在Python中使用列表中的数字作为字典的键?

吉姆·琼斯(Jim Jones)

我的文本文件是一个很大的数据列表(从大的意义上讲我无法手工格式化),它仅由数字组成,其格式如下:

 1 5555 6666
 2 5555 6666
 1 7755 6666
 3 8888 6666

我想将前两列用作键,将剩余的第三列用作它们的值。

这是我的代码:

import string
def load (filename):
    with open ('filename', 'r'):
        dict = {}
        for line in file.readline():
            key, site, value = dict([line.strip().split('\t')for line in file
            dict[key[0]]+[site[1]]= value[2]
        return dict

但是我的代码失败。

我想要的输出是这样的:

{('1', '5555'): '6666', ('2', '5555'): '6666', ('1', '7755'): '6666', ('3', '8888'): '6666'}

是否可以实现我的输出?我在正确的轨道上吗?如果没有,我在哪里出错了,我该如何解决?

谢谢

帕德拉克·坎宁安

您可以使用csv模块读取通过传递的任何定界符分割元素的内容,然后解压缩并将元组中的前两个元素用作键,最后一个用作值:

import csv

with open("in.csv") as f:
    d = {}
    r = csv.reader(f, delimiter=" ") # pass whatever your delimiter is
    for row in r: # first row  1 5555 6666 -> ["1", "5555", "6666"]
        a, b, v = row # a,b,c = "1", "5555", "6666"
        d[(a, b)] = v # create a tuple from the first two elements of the row
print(d)
{('3', '8888'): '6666', ('1', '5555'): '6666', ('1', '7755'): '6666', ('2', '5555'): '6666'}

如果要订购的数据,请使用OrderedDict:

import csv
from collections import OrderedDict
with open("in.csv") as f:
    d = OrderedDict()
    r = csv.reader(f, delimiter=" ")
    for row in r:
        a, b, v = row
        d[(a, b)] = v
print(d)

如果您有机会按键可以重复,那么您需要将值存储在列表或某些容器中:

import csv
from collections import OrderedDict
with open("in.csv") as f:
    d = OrderedDict()
    r = csv.reader(f, delimiter=" ")
    for row in r:
        a, b, v = row
        d.setdefault((a,b),[]).append(v)
print(d)

您自己的代码有多个错误:

def load(filename):
    with open(filename, 'r') as f: # as f and pass variable filename not a string
        d = {} # don't shadow the python dict 
        for line in f: # iterate over the file object
            key, site, value = line.split() # unpack
            d[(key, site)] = value # already unpacked so just use the variables
        return d

然后调用传递文件名的函数:

print(load("in.csv"))
{('1', '5555'): '6666', ('3', '8888'): '6666', ('2', '5555'): '6666', ('1', '7755'): '66`66'}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用列表作为Python字典中的键

来自分类Dev

如何在C#中使用原始列表或列表作为字典的键

来自分类Dev

如何在C#中使用原始列表或列表作为字典的键

来自分类Dev

如何在Python中使用键扩展字典中的值

来自分类Dev

如何在Python中为特定键创建列表作为字典条目?

来自分类Dev

元组列表作为Python中字典的键

来自分类Dev

在Python中使用列表中的数字访问字典中的项目

来自分类Dev

Python:使用列表作为字典键

来自分类Dev

使用列表中的项目作为字典键

来自分类Dev

如何在 Python 中更新字典列表中的键

来自分类Dev

如何在Python中使用相同的键添加字典的值

来自分类Dev

如何在python中使用重复键创建嵌套字典

来自分类Dev

如何在Python中使用groupby键作为xticklabel

来自分类Dev

如何在字典中使用某些字段对键进行字典排序-Python 3

来自分类Dev

如何在字典列表中向字典添加键?

来自分类Dev

在Python字典中使用嵌套键作为值

来自分类Dev

在JavaScript中使用元组作为字典中的键

来自分类Dev

使用字典作为python中的列表

来自分类Dev

使用列表中的项目作为新的字典键

来自分类Dev

如何在Django模板中使用列表作为值迭代字典?

来自分类Dev

如何使用列表/字典(作为c ++)在python中使用哈希技术对单词进行哈希处理?

来自分类Dev

如何在python中制作一个包含阿拉伯音标作为键的字典

来自分类Dev

如何在python中以唯一键和多个值将输出作为字典返回?

来自分类Dev

如何在带有键作为占位符的python多维字典中使用带有executemany的Sqlite3 UPSERT克服语法错误?

来自分类Dev

在python中使用相同的键但值不同的字典/列表更新

来自分类Dev

如何使用字典值打印与 Python 列表中的键关联的键和多个值?

来自分类Dev

使用字典作为字典中的键

来自分类Dev

在Python中使用列表作为值的操作搜索字典

来自分类Dev

如何在Python中用字典中的键替换列表中的项目

Related 相关文章

  1. 1

    使用列表作为Python字典中的键

  2. 2

    如何在C#中使用原始列表或列表作为字典的键

  3. 3

    如何在C#中使用原始列表或列表作为字典的键

  4. 4

    如何在Python中使用键扩展字典中的值

  5. 5

    如何在Python中为特定键创建列表作为字典条目?

  6. 6

    元组列表作为Python中字典的键

  7. 7

    在Python中使用列表中的数字访问字典中的项目

  8. 8

    Python:使用列表作为字典键

  9. 9

    使用列表中的项目作为字典键

  10. 10

    如何在 Python 中更新字典列表中的键

  11. 11

    如何在Python中使用相同的键添加字典的值

  12. 12

    如何在python中使用重复键创建嵌套字典

  13. 13

    如何在Python中使用groupby键作为xticklabel

  14. 14

    如何在字典中使用某些字段对键进行字典排序-Python 3

  15. 15

    如何在字典列表中向字典添加键?

  16. 16

    在Python字典中使用嵌套键作为值

  17. 17

    在JavaScript中使用元组作为字典中的键

  18. 18

    使用字典作为python中的列表

  19. 19

    使用列表中的项目作为新的字典键

  20. 20

    如何在Django模板中使用列表作为值迭代字典?

  21. 21

    如何使用列表/字典(作为c ++)在python中使用哈希技术对单词进行哈希处理?

  22. 22

    如何在python中制作一个包含阿拉伯音标作为键的字典

  23. 23

    如何在python中以唯一键和多个值将输出作为字典返回?

  24. 24

    如何在带有键作为占位符的python多维字典中使用带有executemany的Sqlite3 UPSERT克服语法错误?

  25. 25

    在python中使用相同的键但值不同的字典/列表更新

  26. 26

    如何使用字典值打印与 Python 列表中的键关联的键和多个值?

  27. 27

    使用字典作为字典中的键

  28. 28

    在Python中使用列表作为值的操作搜索字典

  29. 29

    如何在Python中用字典中的键替换列表中的项目

热门标签

归档