Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2011 17:42:55

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

а как сделать чтоб в пустой словарь{} добавилось соответственно ключ и значение {T:S} из двух картежей?
L = {}
T = (“1”,“2”,“3”)
S = (“а”,“б”,“в”)
—————-
должно получиться
{“1”:“а”,“2”:“б”,“3”:“в”} и т.д.



Отредактировано (Янв. 24, 2011 17:46:05)

Офлайн

#2 Янв. 24, 2011 19:31:10

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

вот что у меня получается,но выдает ошибку,может знаете как сделать проще..
d = {}
b = (“1”,“2”,“3”)
y = (“a”,“b”,“c”)
for x in b:
d = y
for z in y:
d = z #вот здесь ошибка
print (d)



Отредактировано (Янв. 24, 2011 19:32:20)

Офлайн

#3 Янв. 24, 2011 20:12:01

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

словарь

Знаем :)

d = dict(zip(b, y))



Офлайн

#4 Янв. 24, 2011 20:46:59

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

спасибо большое,оказывается у меня подобный код, альтернативных способов создания словарей был,и глядел в книжку но не знал как применить.



Офлайн

#5 Янв. 24, 2011 21:17:12

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

но код не работает(((
c = str((1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19, #вот здесь что то не правильно(
20,21,22,23,24,25,26,27,28,
29,30,31,32,33))

b = “абвгдеёжзийклмнопрстуфхцчшщЪыьэюя”
w =tuple(b)
d = dict(zip(c, w))

print (d)



Офлайн

#6 Янв. 24, 2011 23:33:39

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

словарь

Мдаа… Сильная у вас трава :)
Попробуйте это:

b = u"абвгдеёжзийклмнопрстуфхцчшщЪыьэюя"
dict(zip(map(str, range(1, len(b)+1)), b))



Отредактировано (Янв. 24, 2011 23:44:35)

Офлайн

#7 Янв. 25, 2011 14:22:04

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

спс,это значительно сокращает размер)
тогда получается вот что:
b = u“абвгдеёжзийклмнопрстуфхцчшщЪыьэюя”
spisok = dict(zip(b, map(str, range(1, len(b)+1)) ))

slovo = raw_input(“введите пожалуйса слово”)
if slovo in spisok:
print (“yes”)
————————-
первая буква введенного слова должна провериться в spisok по ключам,но почему то этого не происходит,дело до print (“yes”) не доходит. вроде все правильно сделано.



Отредактировано (Янв. 25, 2011 14:23:05)

Офлайн

#8 Янв. 25, 2011 14:47:24

Борисенков Сергей
От:
Зарегистрирован: 2011-01-11
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

Читаем http://python.su/forum/viewtopic.php?id=6960&p=1
используем для windows

if slovo[0].decode('CP866') in spisok:
print ("yes")



Офлайн

#9 Янв. 25, 2011 16:57:54

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

дело действительно в кодировке. но я ведь в начале пишу
# -*- coding: utf-8 -*-
зачем же писать decode(например'CP866')? мне нужно использовать для линукса. ввод русских букв в этой оси с клавиатуры в какой кодеровке?
————————-
а поблема решилась просто убрав - u перед списком букв.



Офлайн

#10 Янв. 25, 2011 17:22:19

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

stil
ввод русских букв в этой оси с клавиатуры в какой кодеровке?
может быть KOI-8?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version