簡體   English   中英

拆分逗號分隔的值並存儲在python 3.x中的單獨行中?

[英]spliting comma separated values and storing in separate row in python 3.x?

我有以下python列表:

original =    [(7782, 'Mandarin, Chinese'), 
(7783, 'Italian, Conversational Spanish'), 
(7792, 'Spanish, English'), 
(7793, 'English, Italian')]

我想要的結果是這樣的:

[(7782, 'Mandarin'),
(7782, 'Chinese'),
(7783, 'Italian'),
(7783, 'Coversational Spanish'),
(7792, 'Spanish'),
(7792, 'English'),
(7793, 'English'),
(7793, 'Italian') ]

我是python的新手。 我該如何實現? 到目前為止,我的代碼如下:

import pymysql
db = pymysql.connect("localhost","root","123456","itutor" )
cursor = db.cursor()
query = "SELECT distinct user_id, language from table;"
cursor.execute(query)
r = list(cursor.fetchall())
db.close()
r2 = r[0][1].split(",")

假設您無法在上游解決問題,則可以使用嵌套列表理解:

res = [(num, lang) for num, languages in original for lang in languages.split(', ')]

[(7782, 'Mandarin'),
 (7782, 'Chinese'),
 (7783, 'Italian'),
 (7783, 'Conversational Spanish'),
 (7792, 'Spanish'),
 (7792, 'English'),
 (7793, 'English'),
 (7793, 'Italian')]

要了解其構造方式,請考慮等效的for循環:

res = []
for num, languages in original:
    for lang in languages.split(', '):
        res.append((num, lang))

暫無
暫無

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

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