Проверьте, соответствуют ли какие-либо ключи в словаре каким-либо значениям

CamelRedis.Key и CamelRedis.Value (будьте осторожны, что они чувствительны к регистру) являются заголовками сообщений, а не параметрами URI

<route>
    <from  uri="direct:intput"/>
    <setHeader headerName="CamelRedis.Key"><constant>testkey</constant></setHeader>
    <setHeader headerName="CamelRedis.Value"><constant>100</constant></setHeader>
    <to uri="spring-redis://localhost:6379?command=SET"/>
</route>
2
задан alec_a 5 March 2019 в 07:55
поделиться

4 ответа

Ваша проблема уже почти решена ... просто выведите все пары:

for x in my_dict:
    y = my_dict[x]
    if my_dict.get(y) == x:
        # x/y is an amicable pair
        ...

обратите внимание, что каждая пара будет извлечена дважды (как x / y, так и y / [ 114]) и совершенные числа (числа, являющиеся суммой их делителей) только один раз; не уверен из текста вашей проблемы, если 6/6 считается дружной парой или нет.

0
ответ дан 6502 5 March 2019 в 07:55
поделиться

Вы можете использовать наборы:

x_dx = {(x, sum(alecproduct.find_factors(x)) - x) for x in range(10 ** 4)}
x_dx = {t for t in x_dx if t[0] != t[1]}
dx_x = {(t[1], t[0]) for t in x_dx}

amicable_pairs = x_dx & dx_x

Как и в ответе 6502, все дружные пары извлекаются дважды. Способ удалить эти «дубликаты» может быть (хотя это, безусловно, полный рот):

amicable_pairs_sorted = {tuple(sorted(t)) for t in amicable_pairs}
amicable_pairs_ascending = sorted(list(amicable_pairs_sorted))
0
ответ дан Elias Strehle 5 March 2019 в 07:55
поделиться

перебирая ключи и значения вашего sums словаря, чтобы создать новый список со всеми amicable numbers решает проблему, вот фрагмент кода.

amicable_list=[]
for i in sums.keys():
    if i in sums.values():
        if (sums.get(sums.get(i,-1),-1) == i) and (i != sums[i]):
            amicable_list.append(i) 
0
ответ дан Subbi reddy dwarampudi 5 March 2019 в 07:55
поделиться

Этот код должен предоставить вам список всех ключей, которые также являются значениями.

my_test = [key for key in my_dict.keys() if key in my_dict.values()]

Вам не нужен .keys (), потому что это поведение по умолчанию, однако я хотел быть явным для этого примера.

В качестве альтернативы пример цикла for можно увидеть ниже.

for key, value in my_dict.iteritems():
    if key == value:
        print key # or do stuff
0
ответ дан R. Bentley 5 March 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: