在Python3.x中拆分逗号分隔的值并存储在单独的行中?

2024-10-01 17:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下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(",")

Tags: 代码import列表dbenglishquerycursororiginal
1条回答
网友
1楼 · 发布于 2024-10-01 17:35:01

假设无法解决上游问题,可以使用嵌套列表:

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))

相关问题 更多 >

    热门问题