Как удалить элементы одного списка, если они удалены из другого? - PullRequest
1 голос
/ 01 мая 2020

Предположим, у вас есть два списка:

x = [Jack, John, Suzie, Bill, James]
y = [93, 88, 100, 72, 82]

Я написал код для усреднения чисел в y и удалил все числа ниже этого среднего. Есть ли способ также удалить соответствующие имена в списке x?

Итак, если 88, 72 и 82 были удалены из y, как я могу использовать это для удаления Джона, Билла и Джеймса из list x?

Вот фрагмент моего текущего кода:

  newName = nameList + listName
  newGrade = gradeList + listGrade
  print(newName)
  print(newGrade)
  avg = getAverage(newGrade)
  print('The average of the list is:', avg)
  gradeAvg = [i for i in newGrade if i > avg]
  nameAvg = 

Я выделил все элементы в gradeAvg, и мне нужно извлечь те же самые из nameAvg.

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Вы используете:

x = [v for k,v in zip(y,x) if k > 90] # 90 or whatever number you want.
# ['Jack', 'Suzie']

Демо

0 голосов
/ 01 мая 2020

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

Попробуйте поискать в этом https://docs.python.org/3/tutorial/datastructures.html#dictionaries

Но если вам нужно работать с отдельными списками, вы можете сравнить их индексов. То есть, получить индекс 88 в списке y и удалить значение с тем же индексом из x.

Проверьте это для поиска индекса Поиск индекса элемента в списке

0 голосов
/ 01 мая 2020

Для этого просто сохраните индекс удаленного значения в y, а затем удалите значение с тем же индексом в x. Как это:

x = ['Bill' , 'Bob', 'Jane', 'Karen']
y = [12, 24, 19, 45]

for element in enumerate(y):
    if element[1] < your_value:
        del y[element[0]]
        del x[element[0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...