我有两个列表,一个不嵌套,另一个是。

carNames = []
priceAndMileage = []


数据看起来像这样,结合起来:

[(u'2011 Toyota Camry SE V6', [u'$14,995', u'31,750']), (u'2012 Toyota Camry L', [u'$15,993', u'27,381'])]


我的代码是:

combinedData = zip(carNames, priceAndMileage)

writer = csv.writer(open("dict.csv", 'r+'))

for dataList in combinedData:
    dataList = [dataList[0]] + [y for x in dataList[1] for y in x]
    writer.writerow(dataList)


我展平了dataList,但是它遍历每个字符,而不只是项目。我如何产生结果,例如拼合任务不会拼合每个字符,而只是拼合子列表?

我的结果在csv文件中:

2011 Toyota Camry SE V6,$,1,4,",",9,9,5,3,1,",",7,5,0
2012 Toyota Camry L,$,1,5,",",9,9,3,2,7,",",3,8,1


但是我需要:

2011 Toyota Camry SE V6, $14,995, 31,750
2012 Toyota Camry L, $15,993, 27,381

最佳答案

要展平dataList,可以将[dataList[0]]dataList[1]连接:

   for dataList in combinedData:
        dataList = [dataList[0]] + dataList[1]
        writer.writerow(dataList)


说明

dataList是例如(u'2011 Toyota Camry SE V6', [u'$14,995', u'31,750'])
(顺便说一句,dataList不是list,它是tuple-基本上是列表的不可变版本)

我们想要得到的是一个扁平化的dataList,即[u'2011 Toyota Camry SE V6', u'$14,995', u'31,750']

[dataList[0]]是仅包含一个元素的列表:[u'2011 Toyota Camry SE V6']

dataList[1]是具有两个元素的列表:[u'$14,995', u'31,750']

[dataList[0]] + dataList[1]将连接这两个列表,我们将得到扁平化的dataList

关于python - 在python中展平嵌套的字符串列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21342571/

10-12 21:20