如何在python中拆分一个列表以获得一个新列表,其中元素位于分隔符的左侧而不是右侧

如何在python中拆分一个列表以获得一个新列表,其中元素位于分隔符的左侧而不是右侧,python,split,Python,Split,我想拆分此python列表(原始列表): 要给我这个清单(价格表): 我尝试了下面这行代码来拆分名为originalList的列表: pricesList = [i.split("price:")[0] for i in originalList] 结果是一个元素数相同的列表,但每个元素只包含car_类型,简言之,拆分已删除分隔符左侧的所有内容。如何更改上面的代码,甚至替换以在新列表中获取分隔符左侧的值和右侧的所有内容 您忘记了分隔符中的双引号“,然后选择分割前的错误索引(0),最后,您不会强

我想拆分此python列表(原始列表):

要给我这个清单(价格表):

我尝试了下面这行代码来拆分名为originalList的列表:

pricesList = [i.split("price:")[0] for i in originalList]

结果是一个元素数相同的列表,但每个元素只包含car_类型,简言之,拆分已删除分隔符左侧的所有内容。如何更改上面的代码,甚至替换以在新列表中获取分隔符左侧的值和右侧的所有内容

您忘记了分隔符中的双引号
,然后选择分割前的错误索引(
0
),最后,您不会强制转换为
int
。您可以执行以下操作以获得所需的输出:

>>> [int(i.split('"price":')[-1]) for i in originalList]
[725842, 565853, 239081, 661624, 654172]

您忘记了分隔符中的双引号
,然后选择了分割前的错误索引(
0
),最后,您没有强制转换为
int
。您可以执行以下操作以获得所需的输出:

>>> [int(i.split('"price":')[-1]) for i in originalList]
[725842, 565853, 239081, 661624, 654172]

Schwobasegll的答案很好,这里有一个使用json库的可能替代方案(我猜原始列表来自json处理)


Schwobasegll的答案很好,这里有一个使用json库的可能替代方案(我猜原始列表来自json处理)

您可以尝试:

import json

n = ['"car_type":"STANDARD","price":725842',
'"car_type":"LUXURY","price":565853',
'"car_type":"PEOPLE_CARRIER","price":239081',
'"car_type":"LUXURY_PEOPLE_CARRIER","price":661624',
'"car_type":"MINIBUS","price":654172']

print [json.loads("{"+str(i)+"}")["price"] for i in n]
您可以尝试:

import json

n = ['"car_type":"STANDARD","price":725842',
'"car_type":"LUXURY","price":565853',
'"car_type":"PEOPLE_CARRIER","price":239081',
'"car_type":"LUXURY_PEOPLE_CARRIER","price":661624',
'"car_type":"MINIBUS","price":654172']

print [json.loads("{"+str(i)+"}")["price"] for i in n]

另一种方法是:


pricesList=[int(originalList[i]。拆分(“,”[1]。拆分(“:”[1])范围内的i(0,len(l1))]

另一种方法:


pricesList=[int(originalList[i]。拆分(“,”[1]。拆分(“:”[1]),用于范围(0,len(l1))]内的i

解决方案

如果您更改为
.split(':')
您可以只获取
[-1]
项,它将表示末尾的数字

lista = [ 
    '"car_type":"STANDARD","price":725842', 
    '"car_type":"LUXURY","price":565853', 
    '"car_type":"PEOPLE_CARRIER","price":239081', 
    '"car_type":"LUXURY_PEOPLE_CARRIER","price":661624', 
    '"car_type":"MINIBUS","price":654172'
]

new_lista = []

for i in range(len(lista)):
    lista[i] = lista[i].split(':')
    new_lista.append(lista[i][-1])

print(new_lista)
输出


解决方案

如果您更改为
.split(':')
您可以只获取
[-1]
项,它将表示末尾的数字

lista = [ 
    '"car_type":"STANDARD","price":725842', 
    '"car_type":"LUXURY","price":565853', 
    '"car_type":"PEOPLE_CARRIER","price":239081', 
    '"car_type":"LUXURY_PEOPLE_CARRIER","price":661624', 
    '"car_type":"MINIBUS","price":654172'
]

new_lista = []

for i in range(len(lista)):
    lista[i] = lista[i].split(':')
    new_lista.append(lista[i][-1])

print(new_lista)
输出


使用
pricesList=[i.split(“price:”)[1]表示原始列表中的i]
只是好奇基于您的设置方式,您对使用字典感兴趣吗?使用
pricesList=[i.split(“price:”)[1]表示原始列表中的i]
只是好奇基于您的设置方式,您对使用字典感兴趣吗?
(xenial)vash@localhost:~/python$ python3.7 split.py 
['725842', '565853', '239081', '661624', '654172']