Есть ли способ, которым я могу разделить этот список? - PullRequest
0 голосов
/ 17 октября 2019

Вот моя строка:

"1.Movie1|Votes:2,147,833| Gross:$28.34M  2.Movie2|Votes:42,473| 
3.Movie3|Votes:23,439| Gross:$0,27M  4.Movie4|Votes:20,940"

Конечная цель состоит в том, чтобы использовать функцию .split ("|") и все это удобно расположить. Проблема в том, что в некоторых фильмах нет «брутто».

Я хочу, чтобы моя строка выглядела так:

"1.Movie1|Votes:2,147,833| Gross:$28.34M|2.Movie2|Votes:42,473|3.Movie3| 
Votes:23,439| Gross:$0,27M|4.Movie4|Votes:20,940|"

Я использовал .replace, чтобы добавить больше "|"отформатировать это проще. Я также пытался использовать .split ("M"), но, поскольку в некоторых фильмах нет брутто, в одну строку помещалось бы 2 фильма.

Ответы [ 3 ]

0 голосов
/ 17 октября 2019

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

s = "1.Movie1|Votes:2,147,833| Gross:$28.34M  2.Movie2|Votes:42,473| 3.Movie3|Votes:23,439| Gross:$0,27M  4.Movie4|Votes:20,940"

"|".join(["|".join([sp2 for sp2 in sp1.split("|") if sp2!='']) 
          for sp1 in s.split(" ") if sp1!='']) + "|"

Результат

'1.Movie1|Votes:2,147,833|Gross:$28.34M|2.Movie2|Votes:42,473|3.Movie3|Votes:23,439|Gross:$0,27M|4.Movie4|Votes:20,940|'
0 голосов
/ 17 октября 2019

Я надеюсь, что это сделает это

string = "1.Movie1|Votes:2,147,833| Gross:$28.34M  2.Movie2|Votes:42,473| 3.Movie3|Votes:23,439| Gross:$0,27M  4.Movie4|Votes:20,940"

string = string.replace(' ','|').replace('||G','| G').replace('||','|')

это учитывая, что вам нужно дополнительное пространство между '|'и 'G' Gross, если это дополнительное пространство не требуется в выходных данных, тогда вы можете удалить часть replace('||G','| G') из кода, чтобы получить желаемый результат

0 голосов
/ 17 октября 2019

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

a="1.Movie1|Votes:2,147,833| Gross:$28.34M  2.Movie2|Votes:42,473| 3.Movie3|Votes:23,439| Gross:$0,27M  4.Movie4|Votes:20,940"
c="|".join(a.split("  "))+"|"
print(c)

Надеюсь, это поможет

...