簡體   English   中英

在python中展平嵌套字符串列表

[英]Flattening nested string list in python

我有兩個列表,一個不嵌套,另一個是。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM