Поиск максимума и минимума списка списков по словарю - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь найти максимальное и минимальное значение в списке списков. Чтобы уточнить, у меня есть эта переменная, в которой хранятся твиты:

lines = [['ladybug7501',
  'RT SamaritansPurse: You can help the many across #PuertoRico who remain in desperate need after #HurricaneMaria. See how here: …',
  'Negative',
  -1],
 ['DyEliana',
  'RT daddy_yankee: La madre naturaleza está azotando con potencia a sus hijos. Mi corazón y mis oraciones con mi tierra #PuertoRico y mis he…',
  'Neutral',
  0],
 ['waffloesH',
  'RT SteveCase: PLEASE HELP: ChefJoseAndres is working tirelessly to feed #PuertoRico, but urgently needs our help: ',
  'Neutral',
  0],
 ['SteveLevinePR',
  'RT StarrMSS: .elvisduran gave 30K to @Bethenny to charter  plane to bring supplies to #PuertoRico HurricaneMaria. He also gave 100K to ',
  'Neutral',
  0],
 ['bronxdems',
  'RT theCEI: THANK YOU to rubendiazjr and the NY Hispanic Clergy for organizing an amazing event last week in support of PuertoRico! ??❤️…',
  'Positive',
  3]]

В ней намного больше списков, но я опубликовал только образец. Я проделал большую часть тяжелой работы, чтобы добраться до этой точки. Я пытаюсь распечатать твит, в котором больше всего положительных слов и больше всего отрицательных. Чем выше число в последнем фрагменте списка, тем оно положительнее. (-1, 0 и 3). Я пытаюсь распечатать твит, с которым связано наибольшее значение.

Это код, с которым я играл:


user_lines = []
for line in lines:
    freqs  = {}
    user_lines.append(line[2])
    for i in user_lines:
        if i not in freqs:
            freqs[i] = 1
        else:
            freqs[i] += 1
        
freqs

Но это все, что у меня есть . У кого-нибудь есть идеи?

Ответы [ 2 ]

2 голосов
/ 12 июля 2020

Вы можете попробовать, указав ключ max и min

mini=min(lines, key=lambda x: x[-1])
maxi=max(lines, key=lambda x: x[-1])

print(mini)
print(maxi)

Вывод:

mini
['ladybug7501', 'RT SamaritansPurse: You can help the many across #PuertoRico who remain in desperate need after #HurricaneMaria. See how here: …', 'Negative', -1]

maxi
['bronxdems', 'RT theCEI: THANK YOU to rubendiazjr and the NY Hispanic Clergy for organizing an amazing event last week in support of PuertoRico! ??❤️…', 'Positive', 3]
0 голосов
/ 12 июля 2020

Если вы хотите сохранить только твит с наихудшим и лучшим рейтингом в словаре, вы можете iterate через твиты и сохранить индекс, в котором находится худший / лучший твит. После этого вы можете сохранить информацию об этих индексах в словаре следующим образом:

highest = 0
lowest = 0
dic = {}
for i, line in enumerate(lines):
    number_of_likes = line[3]
    if number_of_likes < lowest:
        lowest = i
    if number_of_likes > highest:
        highest = i

dic['lowest'] = [lines[lowest][3], lines[lowest][1]]
dic['highest'] = [lines[highest][3], lines[highest][1]]

output:

{'lowest': [-1, 'RT SamaritansPurse: You can help the many across #PuertoRico who remain in desperate need after #HurricaneMaria. See how here: …'], 'highest': [3, 'RT theCEI: THANK YOU to rubendiazjr and the NY Hispanic Clergy for organizing an amazing event last week in support of PuertoRico! ??❤️…']}
...