鬼王 发表于 2020-8-14 20:32:04

求详细解析字典,不太明白~

例如: a.txt
1        a
1        b
3        a
3        c
3        e
4        x
4        y
.......
获得文件b.txt
1        a        b
3        a        c        e
4        x        y
......
用字典的方式,求详解(中间均为Tab分隔)

永恒的蓝色梦想 发表于 2020-8-14 20:53:35

鱼币

Twilight6 发表于 2020-8-14 21:01:14


看看这个可行不:

# 定义字典
word_dict = {}
# 读取文件内容
with open('a.txt',encoding='utf-8') as file:
    # 切割文件编号与单词
    temp =
    # 通过 for 循环将对应切割后的数据取出
    for key,value in temp:
      # 这里转为 int 型是为了在写入 b 文件时候能进行排序后写入 b 文件
      key = int(key)
      # 判断若键已经在字典中,就添加入对应的值列表中去
      if key in word_dict:
            word_dict.append(value)
            continue
      # 反正直接创建个键值对
      word_dict =
# 新建写入 b 文本文件
with open('b.txt','w',encoding='utf-8') as file:
    # 读取字典对应键值,转为列表,以便排序
    item = list(word_dict.items())
    # 这里对编号进行列表排序
    item.sort(key=lambda x:x)
    # 最后循环对应的值写入文件中去
    for key,value in item:
      # 这里因为上个文件读取时候转化为了 int 型了,但是写入文件只能为 str 字符串,所以转化为字符串
      key = str(key)
      # 最终写入文件中去,\t 进行分隔,最后加 \n 是为了换行,防止写入一行
      file.write(key+'\t'+'\t'.join(value)+'\n')

心驰神往 发表于 2020-11-3 11:12:46

鱼币

siven-siven 发表于 2020-11-9 20:46:54

学习啦
页: [1]
查看完整版本: 求详细解析字典,不太明白~