Python напечатать первые n строк строки

Мне интересно, как напечатать первые n строк строки в python, вот мой код:

for word, numbers in enumerate(sorted):
        print(word,':',numbers)

Вывод выглядит следующим образом. как я могу напечатать только первые 10 строк этой строки? Я пытался использовать диапазон, но он печатает только True или False...

0 : ('the', 1577)
1 : ('and', 1080)
2 : ('of', 761)
3 : ('to', 734)
4 : ('a', 720)
5 : ('in', 550)
6 : ('it', 451)
7 : ('was', 432)
8 : ('his', 405)
9 : ('he', 381)
10 : ('I', 365)
11 : ('Scrooge', 361)
12 : ('that', 346)
13 : ('with', 312)
14 : ('you', 254)
15 : ('as', 229)
16 : ('said', 221)
17 : ('for', 209)
18 : ('had', 207)
19 : ('him', 198)
20 : ('not', 193)

person 吳芯緰    schedule 25.10.2018    source источник
comment
Где струна.?. Покажите нам строку или значение в переменной sorted   -  person Sreeram TP    schedule 25.10.2018
comment
Вы говорите, что хотите получить вывод 0 : ('the', 1577) 1 : ('and', 1080) 2 : ('of', 761) 3 : ('to', 734) 4 : ('a', 720) 5 : ('in', 550) 6 : ('it', 451) 7 : ('was', 432) 8 : ('his', 405) 9 : ('he', 381) .?   -  person Sreeram TP    schedule 25.10.2018
comment
@SreeramTP Да!!   -  person 吳芯緰    schedule 25.10.2018
comment
@SreeramTP Отсортированная переменная выглядит как [('the', 1577), ('and', 1080), ('of', 761), ('to', 734), ('a', 720), (' в', 550), ("оно", 451), ("был", 432), ("его", 405), ("он", 381), ("я", 365), ("Скрудж" , 361), ...]   -  person 吳芯緰    schedule 25.10.2018


Ответы (5)


Если вы хотите получить только 10 первых элементов списка, просто нарежьте список соответствующим образом.

for word, numbers in enumerate(sorted[:10]):
        print(word,':',numbers)
person b-fg    schedule 25.10.2018
comment
Обратите внимание, что нарезка списка только для итерации, хотя и краткая и удобочитаемая, менее эффективна, потому что нарезка требует создания нового списка и копирования элементов в новый список. Используйте itertools.islice, если вы хотите эффективно нарезать с целью итерации. - person blhsing; 25.10.2018

Для тех, кто пришел на этот пост из-за заголовка, а не из-за вопроса ОП (который не так уж связан с вопросом).

Для однострочника мы могли бы разделить () строку на новые строки, а затем снова объединить () первые N элементов результирующего списка на новые строки.

os.linesep.join(str.split(os.linesep)[:10])
person Baris Demiray    schedule 20.04.2019

Вы можете использовать оператор if для break цикла, как только word ваша переменная-счетчик, сгенерированная enumerate, достигнет 10:

for word, numbers in enumerate(sorted):
    if word == 10:
        break
    print(word,':',numbers)
person blhsing    schedule 25.10.2018

Как упоминалось в комментарии, вам нужен вывод

0 : ('the', 1577) 1 : ('and', 1080) 2 : ('of', 761) 3 : ('to', 734) 4 : ('a', 720) 5 : ('in', 550) 6 : ('it', 451) 7 : ('was', 432) 8 : ('his', 405) 9 : ('he', 381)

Вы можете разорвать цикл после 10 таких итераций.

count = 0
for word, numbers in enumerate(sorted):
    if count == 10:
        break
    print(word,':',numbers)
    count += 1

Or

Вы можете использовать word и разбить его на основе вот так

for word, numbers in enumerate(sorted):
    if word == 10:
        break
    print(word,':',numbers)

Имейте в виду, что не рекомендуется использовать зарезервированные ключевые слова в качестве имен переменных. Итак, вы должны использовать какое-то другое имя переменной вместо sorted

person Sreeram TP    schedule 25.10.2018

для меня это сработало с этим:

for key, value in(sorted(my_dict.items(), key=itemgetter(0))[:10]):
print(f'{key} : {value}')

я использовал фрагменты в моем методе сортировки.

person blQSheep    schedule 25.07.2020