Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как записать ключи и значения словаря записать в, string. код в одну строку 
V
    Опции темы
PyS
Дата 21.9.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Всем привет!

Написал код, но хотелочь бы 
1) уменьшить код по строкам
2) увеличить ефективность (скорость+память)

Код

kw=dict(a=1, b=2, c=3)
s=''
for x in kw.items():
   s+='%(k)s=%(v)s&'%{'k':x[0], 'v':x[1]}
s=s and '?%s'%s[:-1] or ''


пожалуйста помогите! smile
PM MAIL   Вверх
setq
Дата 21.9.2006, 08:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

kw=dict(a=1, b=2, c=3)
#s=''
#for x in kw.items():
#   s+='%(k)s=%(v)s&'%{'k':x[0], 'v':x[1]}
#s=s and '?%s'%s[:-1] or ''
s = '&'.join('%s=%s' % item for item in kw.items())
s = s and '?' + s


Цензура

Это сообщение отредактировал(а) Cr@$h - 21.9.2006, 10:48
  Вверх
PyS
Дата 21.9.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



setq, спасибо!
немнего переделал:

Код

kw=dict(a=1, b=2, c=3)
s = "?%s"%'&'.join('%s=%s' % item for item in kw.items()) or ''


setq,  я бы поставил тебе +1, но постов не хватает. smile 
поставьте. за меня, пожалуйста! smile


Это сообщение отредактировал(а) PyS - 21.9.2006, 09:11
PM MAIL   Вверх
albertn
Дата 21.9.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Код

from urllib import quote
from urlparse import urlunparse
kw=dict(a=1, b=2, c=3)
s = urlunparse(('http','www.blabla.ru','/lib/index.html','', '&'.join(map(lambda x:'%(k)s=%(v)s'%{'k':quote(str(x[0])), 'v':quote(str(x[1]))},kw.items())),''))

Возможно есть еще одна функция, облегчающая жизнь, но я ее не нашел.

Добавлено @ 09:25 
Опаздал. Ну ладно, зато у меня более правильный код.
setq +1
PM WWW ICQ   Вверх
PyS
Дата 21.9.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



albertn,  я пишу под TG, и поэтому мне не нужно описывать весь путь. Достаточно только 
/index?a=1&b=2&c=3. А вот протокол, адрес и порт TG сам выставляет.
Но всё равно спасибо! 
тоже заслуживает +1 smile
PM MAIL   Вверх
Cr@$h
Дата 22.9.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(PyS @  21.9.2006,  12:01 Найти цитируемый пост)
тоже заслуживает +1 

А то. Согласен. Сделано.

Это сообщение отредактировал(а) Cr@$h - 22.9.2006, 01:14
PM MAIL ICQ   Вверх
PyS
Дата 22.9.2006, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Cr@$h,  спасибо!
PM MAIL   Вверх
albertn
Дата 22.9.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



PyS, Cr@$h спасибо.
PM WWW ICQ   Вверх
dvska
  Дата 29.9.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 30.1.2006

Репутация: 6
Всего: 9



Мудрите что-то, господа..

Код

from urllib import urlencode

kw=dict(a=1, b=2, c=3)
print urlencode(kw)

/или я неправильно понял задачу?/
--------------------
PM MAIL   Вверх
albertn
Дата 29.9.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



dvska, а я чет даже и не заметил, сколько не копал эту либу.
Спасибо, буду знать. +1
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.