как игнорировать запятые внутри слова и вернуть его как одно слово в строке - PullRequest
0 голосов
/ 26 июня 2019

У меня есть строка, которая содержит слова, разделенные запятой. в этой строке есть одно имя "v,i,n,t,a,g,e", которое пишется с запятой между символами. Я хочу знать, как я могу сказать Python, что это одно слово внутри строки, а не отдельные слова.

например,

s= 'the new singer v,i,n,t,a,g,e is very famous'

Я пробовал split(/(?!\d)\,(?!\d)/) для запятой в цифре, например, 100 000, но я не знаю, как сделать это для слова.

я хочу:

s= "'the', 'new', 'singer', 'v,i,n,t,a,g,e' , 'is', 'very', 'famous'"

Ответы [ 2 ]

1 голос
/ 26 июня 2019
>>> s = 'the new singer v,i,n,t,a,g,e is very famous'
>>> ', '.join(f"'{x}'" for x in s.split(' '))
"'the', 'new', 'singer', 'v,i,n,t,a,g,e', 'is', 'very', 'famous'"

1 голос
/ 26 июня 2019

Вы можете использовать функцию split():

s= 'the new singer v,i,n,t,a,g,e is very famous'
result = s.split(' ')

Вывод:

['the', 'new', 'singer', 'v,i,n,t,a,g,e', 'is', 'very', 'famous']

В противном случае, если у вас просто «есть строка, содержащая слова, разделенные запятой»и несколько слов, разделенных запятыми между каждым символом, вы можете сделать это:

s= 'the,new singer,v,i,n,t,a,g,e,is,very,famous'
result = []
hidden_word = ''
for string in s.split(','):
    if len(string)>1:
        if len(hidden_word)>0:
            result.append(hidden_word)
            hidden_word = ''
        result.append(string)
    else:
        hidden_word += string

Вывод:

['the', 'new singer', 'vintage', 'is', 'very', 'famous']

Одним из преимуществ этого метода является то, что вы получаете слово «винтаж»"а не" v, i, n, t, a, g, e "

...