Форум сайта python.su
Делаю так:
file=codecs.open( "data.txt", "r", "cp1251" ) # открываем файл data.txt на чтение
u = file.readlines() # считываем строками в переменную u
for i in u[0:]:
i[2:] = [] # оставляем только 1 и 2 элементы каждой строки, отсекаем все, что дальше
list.insert(0,i) # Отображаем содержимое переменной в окне списка
Отредактировано (Июнь 22, 2009 13:37:32)
Офлайн
1. i - это не первые 2 слова, а первые 2 символа,
2. i - это юникод строка, а строки в питоне обьекты неизменяемые, про что тебе интерпритатор и говорит в ошибке,
3. list.insert(0,i) - использовать зарезервированные слова в качестве имён переменных плохая практика.
Отредактировано (Июнь 22, 2009 15:43:43)
Офлайн
Viperхорошо, это я понимаю
2. i - это юникод строка, а строки в питоне обьекты неизменяемые, про что тебе интерпритатор и говорит в ошибке,
Офлайн
Офлайн
lst = [x.strip().split()[:2] for x in file("data.txt", "rb")]
Офлайн
pyuserи получается все точно также как в моем первом посте:lst = [x.strip().split()[:2] for x in file("data.txt", "rb")]
Отредактировано (Июнь 23, 2009 13:45:55)
Офлайн
Я тут на днях на Ocaml зажигал… :-)
f = '''
qw er ty
wq re
qw
'''
split = lambda s: filter(None, s.split())
print [\
'' if len(split(s)) == 0 \
else ' '.join(split(s)) if len(split(s)) == 1 \
else ' '.join(split(s)[:2]) if len(split(s)) >= 2 \
else '' \
for s in f.split('\n')]
Офлайн
ZZZИзвини, но ничего не понял.
Я тут на днях на Ocaml зажигал… :-)f = '''
qw er ty
wq re
qw
'''
split = lambda s: filter(None, s.split())
print [\
'' if len(split(s)) == 0 \
else ' '.join(split(s)) if len(split(s)) == 1 \
else ' '.join(split(s)[:2]) if len(split(s)) >= 2 \
else '' \
for s in f.split('\n')]
Офлайн
xs13Это совершенно нормально :) Где-то здесь совсем недавно поднималась тема о печати списков и в ней Андрей Светлов очень доходчиво объяснил, почему получается именно так, а не иначе.
и получается все точно также как в моем первом посте:
[]
сейчас буду дальше думать
lst = [x.strip().split()[:2] for x in file("data.txt", "rb")]
for l in lst :
print(l[0], l[1])
Офлайн
pyuserсимпотично )))
Код
Офлайн