Получить конкретное значение ключа в словаре? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть словарь, подобный этому:

d = {'k1':[0.2,0.65,0.23], 'k2':[0.32,1.2,3.3], 'k3':[1.8,0.6,0.4], ...}

Итак, я хочу получить список ключей и второе значение каждого ключа в списке. Я пробовал этот код:

names = list(d.keys())
values = list(d.values())

Первая строка верна и дает мне список всех ключей, но вторая строка предоставляет все значения, а это не то, что мне было нужно. Поэтому мне нужно только второе или третье значение каждого ключа. Есть предложения?

Ответы [ 7 ]

3 голосов
/ 15 апреля 2019

Переберите dict и получите v[1] для каждого key в новом dict:

d = {'k1':[0.2,0.65,0.23], 'k2':[0.32,1.2,3.3], 'k3':[1.8,0.6,0.4]}

print({k:v[1] for k,v in d.items()})

ВЫХОД :

{'k1': 0.65, 'k2': 1.2, 'k3': 0.6}
2 голосов
/ 15 апреля 2019
{k:v[1] for k,v in d.items()}

Создайте новое dict со вторым значением из списка значений оригинала dict, используя словарь.

2 голосов
/ 15 апреля 2019

попробуй:

mylist = [(k, v[1]) for k, v in d.items()]
1 голос
/ 15 апреля 2019

Это вам поможет:

names = list(d.keys())
values = [v[1] for v in d.values()]
0 голосов
/ 15 апреля 2019

d = {k1: [0.2,0.65,0.23], k2: [0.32,1.2,3.3], k3: [1.8,0.6,0.4], ...}

  1. для извлечения только 2-го элемента из значений, код ниже будет печатать только 2-е элемента каждого примера ключа - [v [1] для k, v в d.iteritems ()] печатает [0.65,1.2,0.6]

  2. для извлечения ключа: значение {k: v [1] для k, v в d.iteritems ()} печатает {'k1': 0,65, 'k2': 1,2, 'k3':0,6}

  3. для извлечения 2-го и 3-го элементов обоих, что-то подобное можно сделать {k: [v [1], v [2]] для k, v в d.iteritems()}

0 голосов
/ 15 апреля 2019
>>> import numpy as np
>>> d = {'k1':[0.2,0.65,0.23], 'k2':[0.32,1.2,3.3], 'k3':[1.8,0.6,0.4]}
>>> np.array(list(d.values()))[:,1]

Выход:

array([0.65, 1.2 , 0.6 ])
0 голосов
/ 15 апреля 2019

Эта итерация ключа и значений на ключ

for k,v in d.items():
    print("Key: %s" %k)
    print("Values: %s" %v)
    print("-"*8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...