У меня есть некоторые названия автомобилей, такие как:

Mercedes-Benz C-Class C180 CGI,
BMW 3 Series 318i (New 5-yr COE),
Kia Cerato Forte 1.6M EX (COE till 03/2024) ...

Я хочу поставить так:

Mercedes-Benz C-Class, 
BMW 3, 
Kia Cerato ...

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

In [21]: car = 'Mercedes-Benz C-Class C180 CGI'
In [22]: s = car.find(' ')
In [23]: car_1 = car[:s]
In [24]: car_2 = car[s+1:]
In [25]: s_2 = car_2.find(' ')
In [26]: car_3 = car_2[:s_2]
In [27]: car_name = car_2+' '+car_3
In [28]: car_name = car_1+' '+car_3
In [29]: car_name
Out[29]: 'Mercedes-Benz C-Class'
1
Amin 26 Июн 2019 в 16:42

3 ответа

Лучший ответ

Простое понимание списка будет работать

car_list=[
'Mercedes-Benz C-Class C180 CGI',
'BMW 3 Series 318i (New 5-yr COE)',
'Kia Cerato Forte 1.6M EX (COE till 03/2024)']

[' '.join(car.split(" ",2)[:2]) for car in car_list]

Выход:

['Mercedes-Benz C-Class', 'BMW 3', 'Kia Cerato']
2
Dan 26 Июн 2019 в 13:49

Чтобы получить первые две части строки с пробелами, разделяющими части, используйте .split() и .join():

>>> s = "This sentence is a sample sentence."
>>> " ".join(s.split()[:2])
"This sentence"
4
Zev Chonoles 26 Июн 2019 в 13:49

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

>>> car = "Kia Cerato Forte 1.6M EX (COE till 03/2024)"
>>> newName = car.split(' ')
>>> ' '.join(newName[:2])
'Kia Cerato'
>>> car = "Mercedes-Benz C-Class C180 CGI"
>>> newName = car.split(' ')
>>> ' '.join(newName[:2])
'Mercedes-Benz C-Class'
>>> 

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

1
Tejaswa 26 Июн 2019 в 14:14