2013-03-28 3 views
0

У меня есть список, который содержит ряд цифр. Этот список номеров соответствует строке в файле .dat. Как я могу использовать список, скажем [0,1,2,3,4,5,6,9,4], а затем распечатать строку в файле .dat, которому соответствует каждый номер.список номеров соответствует строке в файле

+0

'линии = f.readlines(); строки [i] для i в индексах –

ответ

2

Вы бы читать строки в память, в список, а затем индекс в этот список:

with open('somefile') as fileobj: 
    lines = list(fileobj) 

for index in indices: 
    print lines[index] 
+0

'lines = list (open ('somefile'))'. Есть ли причина, по которой вы рекламируете эту конструкцию, вместо использования 'with'? – Abhijit

+0

@ Abhijit: Я ленился; это простой однострочный лайнер, который отлично работает в CPython. –

0
file = [ l for l in open('file.name') ] 
for i in list: 
    print file[i] 
+0

-1. Не используйте имена 'file' и' list', потому что они clobber встроены. Кроме того, я думаю, вы имеете в виду 'for i в файле:'. Наконец, файлы имеют метод 'readlines', поэтому вам не нужно использовать понимание списка здесь. –

+0

Нет, 'for i in list' верен. – georg

+0

@ thg435: Ах. Теперь я вижу, что здесь есть неявный 'list = [0,1,2,3,4,5,6,9,4]'. Но остальные две проблемы остаются, так что еще -1. –

Смежные вопросы