Проверьте все значения в списке на основе индекса - PullRequest
0 голосов
/ 13 января 2020

У меня есть следующая функция ...
Есть ли способ, которым я мог бы как-то добавить al oop, чтобы каждое значение в списке проверялось. Код показывает проверку каждого индекса с elif по одному. Мне просто интересно, если это возможно сделать в одном блоке элиф? У меня есть около 500 значений в моем списке, поэтому я не могу сделать elif для каждого индекса
То, что я пробовал и не работало:

for loop in range(0,5), а затем просто положить elif (str(df.iloc[i]['Name']) in x):

range(0,5) в самом аргументе индекса elif (str(df.iloc[range(0,5)]['Name']) in x):

def colourcode(x):
    if ( str('default') in x): 
        return '#fff034'
    elif (str(df.iloc[0]['Name']) in x):
        return '#ff0000'
    elif (str(df.iloc[1]['Name']) in x):
        return '#ff0000'
    elif (str(df.iloc[2]['Name']) in x):
        return '#ff0000'
    else:
        return '#000000'

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Встроенная функция любая хорошо подходит для этого.

Если вы хотите проверить с каждым элементом в ilo c:

def color_code(x):
    if(str('default') in x):
        return '#fff034'
    elif any(str(iloc['Name']) in x for iloc in df.iloc):
        return "#ff0000"
    return '#000000'

В пределах части элементов в ilo c:

any(str(iloc['Name']) in x for iloc in df.iloc[:3])

Если ilo c не повторяется:

any(str(df.iloc[i]['Name']) in x for i in range(3))
0 голосов
/ 13 января 2020

Да, вы можете, подвох в том, что вам нужен словарь с отображениями, код выглядит следующим образом:

code_mappings = {0: '#ff0000', 1: '#ff0000', 2: '#ff0000'}
def color_code(x):
 if(str('default') in x):
  return '#fff034'
 for i in range(2):
  if str(df.iloc[i]['Name'] in x)
     return code_mappings[i]
 return '#000000'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...