ورود

View Full Version : استفاده از لیست به عنوان کلید و مقدار در دیکشنری



prvmrd
پنج شنبه 09 شهریور 1391, 16:10 عصر
دو تا لیست دارم
یکی کلید دیکشنری یکی مقدار
key = ['a', 'b', 'c']
value = [1, 2, 3]
d = {}

for k in key:
for v in value:
d[k] = v
print d
{'a': 3, 'b': 3, 'c': 3}
اینجا کلید دیکشنری درسته ولی مقدارش نه
میخوام اینجوری بشه نمی دونم چیکار کنم
{'a': 1, 'b': 2, 'c': 3}

rezaricky
پنج شنبه 09 شهریور 1391, 21:02 عصر
سلام ، با استفاده از متد zip ابتدا دو تا لیست رو به تاپل تبدیل کن ، بعد با متد dict تاپل رو به دیکشنری تبدیل کن.
keys = ['a' ,'b','c']
values = [1,2,3]
d ={}
t = zip (keys , values )
d = dict (t)
print d
http://docs.python.org/library/functions.html#zip

armanmaz1373
چهارشنبه 22 شهریور 1391, 16:26 عصر
اگه اجازه بدی اول برات توضیح بدم چرا نتیجه دلخواهت رو نمی گیری بعد با هم حلش می کنیم:چشمک:
مشکل برنامت اینه که دوتا دونه فور رو داخل هم استفاده کردی. در نتیجه به ازای هر بار اجرای فور بیرونی برنامت فور داخلی کامل اجرا می شه. اجازه بده بهت نشون بدم مقدار دو متغیر k و v چه طور عوض می شه:
k=a v=1
k=a v=2
k=a v=3

k=b v=1
k=b v=2
k=b v=3

k=c v=1
k=c v=2
k=c v=3

فکر کنم حالا دیگه علت درست کار نکردن رو متوجه شده باشی پس بریم سراغ حل مشکل:

key = ['a', 'b', 'c']
value = [1, 2, 3]
d = {}

for k in range(0,3):
d[key[k]] = value[k]
print d

کلکی که اینجا زدیم اینه که یک متغیر تعیین کردیم توی بازه ۰ تا ۳ (۳رو شامل نمی شه) و از اون به عنوان اندیس استفاده کردیم