Как я могу выбрать элементы в столбце на основе списка приоритетов в Python? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть столбец, который содержит несколько значений в каждой строке. Я пытаюсь написать функцию, чтобы выбрать только одно значение из каждой строки на основе списка приоритетов, так что это сводится только к одному значению. Я использую Python.

моя колонка выглядит так:

Green&Yellow
Yellow
Blue&Orange
Orange&Green
Purple&Green
Purple
Yellow&Purple
Green

Мой список приоритетов:

Priority_list = [Green, Orange, Blue, Purple, Yellow ]

Желаемый результат будет:

Green
Yellow
Orange
Green
Green
Purple
Purple
Green

Код должен быть примерно таким:

def select_color(value):

    color = value.split('&')
    if len(color) > 1:
        my_color = first color found in list
    else:
        my_color = color

    return my_color

Я не могу найти способ выбрать первое значение, появляющееся в списке приоритетов.

Большое спасибо,

Rachael

Ответы [ 3 ]

1 голос
/ 18 июня 2019

Более просто вы можете попробовать:

import re
c = ["Green&Yellow","Yellow","Blue&Orange","Orange&Green","Purple&Green","Purple","Yellow&Purple","Green"]
p = ["Green", "Orange", "Blue", "Purple", "Yellow" ]
[[re.findall('(?i)(' + v + ').*?', x) for v in p if re.findall('(?i)(' + v + ').*?', x)][0][0] for x in c]

результаты:

['Green', 'Yellow', 'Orange', 'Green', 'Green', 'Purple', 'Purple', 'Green']
0 голосов
/ 18 июня 2019

Если все ваши цвета в priority_list, то приведенный ниже код поможет вам

priority_list = [Green, Orange, Blue, Purple, Yellow ]

def select_color(value):

    color = value.split('&')
    if len(color) == 1:
        return color[0]
    else:
        for pcolor in priority_list:
            if pcolor in color :
                return pcolor;
0 голосов
/ 18 июня 2019
# list = Global list of colors that you want
# color = string col1&col2&col3...
def select_color(list, color):
    color_list = color.split('&')
    for col in color_list:
        if col in list:
            return col
    return

, если вы получаете None в качестве возвращаемого значения, что означает, что цвет не найден

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...