Как я могу настроить список, чтобы некоторые элементы располагались по одному индексу? - PullRequest
0 голосов
/ 14 июля 2020

Допустим, у меня есть такой список:

info = ['385395982', '3.1', 'This is dummy text', '3843955682', '2.0', 'This is also dummy text', '248298493', '4.2', 'Another dummy text for you']

Как видите, список включает в себя эту информацию: метку времени, рейтинг и некоторый текст. Каждый элемент добавляется в список. Я хотел бы иметь доступ ко всем отметкам времени в индексе 0, рейтингам в индексе 1 и текстам в индексе 2. Как мне изменить список для этого?

Мой код:

class Scraper():
  review_information = []
  review_date = ''
  review_rating = ''
  review_content = ''
  
  def __init__():
    ...
    for contribution in review_json.get('contributions',[]):
      self.review_date = contribution.get('sortTimestamp', '')
      self.review_rating = contribution.get('rating', '')
      self.review_content = contribution.get('text', '')
      self.review_information.append(self.review_date)
      self.review_information.append(self.review_rating)
      self.review_information.append(self.review_content)

  def parse(self):
    for info in self.review_information:
      item['review_date'] = self.review_information[0]
      item['review_rating'] = self.review_information[1]
      item['review_content'] = self.review_information[2]

Итог, я бы хотел, чтобы все временные метки были с индексом 0, чтобы в методе синтаксического анализа я мог получить к ним доступ с помощью self.review_information[0] (и то же самое для рейтинга и содержимого).

Желаемый результат Список должен выглядеть примерно так:

In [16]: info[0]                                                                                                                                                                
Out[16]: ['385395982']
         ['384395562'] 
         ['248298493']

In [17]: info[1]                                                                                                                                                                
Out[17]: ['3.1'] 
         ['2.0'] 
         ['4.2']

In [18]: info[2]                                                                                                                                                                
Out[18]: ['This is dummy text'] 
         ['This is also dummy text'] 
         ['Another dummy text for you']

Чтобы, когда я вызываю info[0] в for l oop, я получаю по одной метке времени, а не все метки времени сразу. В этом есть смысл?

Заранее спасибо!

1 Ответ

1 голос
/ 14 июля 2020

это позволит вам получить доступ ко всем вашим объектам, используя индексы в виде списка

info = [info[::3], info[1::3], info[2::3]]

Вывод:

In [16]: info[0]                                                                                                                                                                
Out[16]: ['385395982', '3843955682', '248298493']

In [17]: info[1]                                                                                                                                                                
Out[17]: ['3.1', '2.0', '4.2']

In [18]: info[2]                                                                                                                                                                
Out[18]: ['This is dummy text', 'This is also dummy text', 'Another dummy text for you']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...