自动设置字典中的一行关键字



我有一个python项目要完成,但我不知道如何使用python附带的基本模块将字典分成x个相等的部分。

我正在寻找的输出是:

scrabble_dico = {2: , 3: ,..... , x:   }

这是我的代码:

scrabble = {"A": 1, "B": 3, "C": 3, "D": 2, "E": 1, "F": 4, "G": 2, "H": 4, "I": 1,
"J": 8, "K": 10, "L": 1, "M": 2, "N": 1, "O": 1, "P": 3, "Q": 8, "R": 1,
"S": 1, "T": 1, "U": 1, "V": 4, "W": 10, "X": 10, "Y": 10, "Z": 10}
texte = "FSDKLHGIOQDSHGVIMOQSDVIOQDBSMIUQDBSMIUV"

def point(mot):
points = 0
for lettre in mot:
points += scrabble[lettre]
return points

print(point(texte))
fichier = open('scrabble.txt', "r")

def dico_scrabble(mot):
scrabble_dico = {}
ligne = [line.strip('n') for line in fichier]
for line in ligne:
scrabble_dico[line] =point(line)
return scrabble_dico

print(dico_scrabble(fichier))

文件Fichier是一个包含大量值的列表,因此很遗憾无法说出值的确切数量。

以下是关于将字典一分为二的一般建议:

d = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}
d1 = dict(list(d.items())[len(d)//2:])
d2 = dict(list(d.items())[:len(d)//2])

如果打印d1:

{'key1': 1, 'key5': 5, 'key4': 4}

如果您打印d2:

{'key3': 3, 'key2': 2}

您可以使用相同的逻辑将其拆分为更小的块。

这里使用的主要工具被称为切片

slice((函数返回一个slice对象。

切片对象用于指定如何对序列进行切片。你可以指定切片的开始位置和结束位置。你也可以指定步骤,该步骤允许您例如每隔一个切片项目

在这里你可以阅读它的官方文档,在这里你会找到一堂带练习的课。

最新更新