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