Python: вставка элементов из двух частично совпадающих списков в словарь - PullRequest
0 голосов
/ 26 марта 2019

У меня есть два списка;давайте назовем их list1 и list2list1 есть вопросы с ответами, такими как:

   Question1,Answer,Answer, Question2, Answer, Answer, Answer, Question3, Answer (and so one) 

В list2 есть вопросы (без ответов) от list1

Я вставил list2, чтобы диктоватьимя slice в качестве аргументов и np.zeros в качестве значений.Итак, у меня есть что-то вроде этого в slice:

  Q1 ...... 0
  Q2 ...... 0
  Q3 ...... 0

И я хочу вставить данные от list1 (без вопросов) до slice в возможных значениях, где теперь нули.Поэтому я хочу что-то вроде этого:

  Q1 ...... A,A
  Q2 ...... A,A,A
  Q3 ...... A
  ...

Я пробовал следующий код, но он не работал ... next() вставил только следующий индексный алфавит: как "o" или около того ...

zero = np.zeros(len(list2))
slice = dict(zip(list2, zero))
for c in list1:
    for m in slice:
        if c == m:
            c = iter(c)
            slice.update({m:next(c)})
print(slice)

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

, пожалуйста, помогите ....

Вот, вот пример вопроса из list2:

['お疲れ様です。コールセンターからメディア顧客外へ転用のテレアポをしているのですが、フレッツ光ライトと防犯カメラの関係はどうなっているかご存じでしょうか?] 
#Here is same question + answers from list1:question 
[コールセンターからメディア顧客外へ転用のテレアポをしているのですが、フレッツ光ライトと防犯カメラの関係はどうなっているかご存じでしょうか?]', '
#answer1
[防犯カメラを導入する為にライトを引かれたと聞きました。]', '
#answer2
[外部からのアクセスでは?'] 
#question2 
['お疲れ様です。F-Secureからのメールが送信される頻度はどのくらいなのでしょうか?]
#answer .... 
#I expecting same result in dict (Q1: A,A /Q2: A). But I get this:question 
[コールセンターからメディア顧客外へ転用のテレアポをしているのですが、あるお客さんより防犯カメラを設置した時に、フレッツ光ライトと防犯カメラの関係はどうなっているかご存じでしょうか?]', '
#answer1
[防] 
#(only one symbol) 

1 Ответ

0 голосов
/ 26 марта 2019

Вот другой подход для кодирования этой проблемы. Я не могу прочитать ваши образцы данных, но я предполагаю, что list1 и list2 на самом деле списки, где каждый элемент может быть найден с использованием значения индекса (например, первый элемент в list2 можно найти с помощью list2[0] ).

В этом ответе также предполагается, что нет повторяющихся вопросов, так как в противном случае функция index() всегда будет возвращать первое возникновение этих вопросов.

#define dictionary to hold question-answer combinations
final_dict = {} #what you have named 'slice' in your code
#loop through questions in list2, find location of question in list1,
#then, extract all answers from list1 found between given question and next question,
#store them in a list and add question and its corresponding answers to the final dictionary
for idx2, question in enumerate(list2):
   if question in list1:
      Try:
         next_question = list2[idx2+1]
         start_idx1 = list1.index(question) + 1
         answers = []
         for idx1 in range(start_idx1,list1.index(next_question)):
            answers.append(list1[idx1])
         final_dict[question] = answers
      Except IndexError:
         pass
print(final_dict)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...