Guys!
J'essaie de faire une liste de films, avec des données importées à partir d'un fichier TXT qui ressemble à ceci: p> (avec y = regardé , et n = n'ont pas encore vu) P> J'essaie de trier la liste par nom, de sorte qu'il ressemblera à quelque chose comme: p> J'ai trouvé un didacticiel et j'ai essayé d'ajouter ce code dans la fonction pour les trier: P> for k, v in movie_list.items():
movie_list[literal_eval(k)] = v
3 Réponses :
Vous allez ici, cela devrait le faire: Nous définissons d'abord Après cela, nous ouvrons le fichier et lisons toutes ses lignes dans une liste code> Content Code>. p> prochaine chose à faire est d'analyser et d'extraire des valeurs de celui-ci (de Chaque ligne que nous devons extraire le nom du film et s'il a été regardé ou non). Nous économiserons ces valeurs dans une autre liste de dictionnaires, chacun contenant le nom de la vidéo et si elle a été surveillée. P> c'est ce que prochaine chose à faire est de trier la liste par regardé_mapping code> qui chante simplement les valeurs dans votre fichier pour les valeurs souhaitées. P > nom, regardé = ligne.strip (). Lined ("" ' ) .RStrip ('"'). Split ('" ","' ") Code> est pour, il bandes essentiellement des déchets de chaque extrémité de la ligne, puis divise la ligne par des ordures au milieu, retournement propre Nom code> et regardé code>. p> Nom code> Valeur dans chaque dictionnaire: p> sorted_movies = sorted(movies, key=lambda k: k['name'].lower())
Heureux d'avoir pu aider: D
salut! Question rapide, y a-t-il un moyen de le faire afin que les articles soient triés, il est non sensible à la casse?
Votre fonction avec une solution rapide
Eh bien, je viens de modifier votre code. Lorsque vous utilisez triché () code> sur un dictionnaire code>, le dictionnaire est converti en une liste de tuples code>. Tout ce que j'ai fait, c'est que j'ai fait un autre dictionnaire à partir de la liste code> existant des tuples code>. def sortAlphabetically():
movie_list = dict()
with open('movies.txt') as f:
for line in f:
movie, watched = line.strip().split(',')
movie_list[movie.strip()] = watched.strip()
movie_sorted = sorted(movie_list.items(), key = lambda kv: kv[0])
movie_list = dict()
for key, value in movie_sorted:
movie_list[key] = value
i = 1
for key, value in movie_list.items():
if value == 'Y':
print("{}. {} {}".format(i,key,"(Watched)"))
else:
print("{}. {} {}".format(i,key,"Have Not Watched Yet"))
i += 1
@Reclusive_Nymph heureux je pourrais aider :)
salut! Question rapide, y a-t-il un moyen de le faire afin que les articles soient triés, il est non sensible à la casse?
@Reclusive_nymph La solution que j'ai est sensible à la casse. Je peux la rendre non sensible à la casse si vous voulez
Pouvez-vous s'il vous plaît dites-moi comment faire ça?
à la place de lambda kv: kv [0] code> Utiliser lambda kv: kv [0] .Lower () code>
Heureux pourrait être utile :)
Vous pouvez énumérer l'objet de fichier que vous êtes itération