[英]spliting comma separated values and storing in separate row in python 3.x?
I have the following python list: 我有以下python列表:
original = [(7782, 'Mandarin, Chinese'),
(7783, 'Italian, Conversational Spanish'),
(7792, 'Spanish, English'),
(7793, 'English, Italian')]
What I want as result is like this: 我想要的结果是这样的:
[(7782, 'Mandarin'),
(7782, 'Chinese'),
(7783, 'Italian'),
(7783, 'Coversational Spanish'),
(7792, 'Spanish'),
(7792, 'English'),
(7793, 'English'),
(7793, 'Italian') ]
I am new to python. 我是python的新手。 How can I achieve this? 我该如何实现? My code so far is like so: 到目前为止,我的代码如下:
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(",")
Assuming you can't resolve the issue upstream, you can use a nested list comprehension: 假设您无法在上游解决问题,则可以使用嵌套列表理解:
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')]
To understand how this is constructed, consider the equivalent for
loop: 要了解其构造方式,请考虑等效的for
循环:
res = []
for num, languages in original:
for lang in languages.split(', '):
res.append((num, lang))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.