Python 将n级嵌套元组数据转换为逗号分隔的字符串,并用引号括起来

Python 将n级嵌套元组数据转换为逗号分隔的字符串,并用引号括起来,python,string,tuples,Python,String,Tuples,我有以下资料: companies = [(('Paramount Pictures Corporation (Canada)',),), (('20th Century Fox Home Entertainment',),), (('Shanghai Epic Music Entertainment',),), (('Paramount Pictures',),), (('Fox Filmes do Brasil',),), (('Gativideo',),), (('Abril V\xc3\

我有以下资料:

companies = [(('Paramount Pictures Corporation (Canada)',),), (('20th Century Fox Home Entertainment',),), (('Shanghai Epic Music Entertainment',),), (('Paramount Pictures',),), (('Fox Filmes do Brasil',),), (('Gativideo',),), (('Abril V\xc3\xaddeo',),), (('20th Century Fox Netherlands',),), (('20th Century Fox Home Entertainment',),), (('Nelonen',),), (('20th Century Fox',),), (('Finnkino',),), (('Modhumita Movies',),), (('Twentieth Century Fox Home Entertainment',),), (('Egmont Entertainment',),), (('National Broadcasting Company (NBC)',),), (('MTV3',),), (('Bandur Film',),), (('Westec Media Limited',),), (('20th Century Fox Home Entertainment',),), (('Turner Classic Movies (TCM)',),), (('Lightstorm Entertainment',),), (('20th Century Fox',),), (('Pioneer Entertainment',),), (('Odeon',),), (('FS Film',),), (('Filmes Castello Lopes',),), (('Paramount Home Entertainment',),), (('Big Picture 2 Films',),), (('Hispano Foxfilms S.A.E.',),), (('TV3 Norge',),), (('Paramount Home Video',),), (('Warner Bros.',),), (('Sub',),), (('20th Century Fox de Argentina',),), (('Twentieth Century Fox Film Corporation',),), (('UGC-Fox Distribution (UFD)',),), (('PFC Vid\xc3\xa9o',),), (('Columbia TriStar Egmont Film Distributors',),), (('20th Century Fox Home Entertainment',),), (('Syrena Entertainment Group',),), (('AVA',),), (('Forum Cinemas',),)]
我想将其转换为一个字符串,如下所示:

 companies = 'Paramount Pictures Corporation (Canada)', '20th Century Fox Home Entertainment', 'Shanghai Epic Music Entertainment', 'Twentieth Century Fox Film Corporation',  ....

两天前我问了一个类似的问题,但这里提供的解决方案不适用于上述字符串。

对于
公司中的每个
项目
,您想要的是
项目[0][0]
。使用a,您可以执行以下操作:

res = (item[0][0] for item in companies)
要获得最终结果,请像这样应用
tuple()

tuple(res)
输出:

>>> companies = [(('Paramount Pictures Corporation (Canada)',),), (('20th Century Fox Home Entertainment',),), (('Shanghai Epic Music Entertainment',),)]
>>> 
>>> res = (item[0][0] for item in companies)
>>> res
<generator object <genexpr> at 0x023AAE68>
>>> tuple(res)
('Paramount Pictures Corporation (Canada)', '20th Century Fox Home Entertainment', 'Shanghai Epic Music Entertainment')
>>公司=[((“派拉蒙影业(加拿大)”,(“20世纪福克斯家庭娱乐”,),(“上海史诗音乐娱乐”,),)]
>>> 
>>>res=(对于公司中的项目,[0][0]项)
>>>res
>>>元组(res)
(‘加拿大派拉蒙影业公司’、‘20世纪福克斯家庭娱乐’、‘上海史诗音乐娱乐’)

一旦定义了嵌套的get
[0]

first = lambda x: first(x[0]) if type(x)==tuple else x
不管元组嵌套的深度是多少,它都会工作

我们只剩下将其应用于
公司
列表

companies = [(('Paramount Pictures Corporation (Canada)',),), (('20th Century Fox Home Entertainment',),), (('Shanghai Epic Music Entertainment',),), (('Paramount Pictures',),), (('Fox Filmes do Brasil',),), (('Gativideo',),), (('Abril V\xc3\xaddeo',),), (('20th Century Fox Netherlands',),), (('20th Century Fox Home Entertainment',),), (('Nelonen',),), (('20th Century Fox',),), (('Finnkino',),), (('Modhumita Movies',),), (('Twentieth Century Fox Home Entertainment',),), (('Egmont Entertainment',),), (('National Broadcasting Company (NBC)',),), (('MTV3',),), (('Bandur Film',),), (('Westec Media Limited',),), (('20th Century Fox Home Entertainment',),), (('Turner Classic Movies (TCM)',),), (('Lightstorm Entertainment',),), (('20th Century Fox',),), (('Pioneer Entertainment',),), (('Odeon',),), (('FS Film',),), (('Filmes Castello Lopes',),), (('Paramount Home Entertainment',),), (('Big Picture 2 Films',),), (('Hispano Foxfilms S.A.E.',),), (('TV3 Norge',),), (('Paramount Home Video',),), (('Warner Bros.',),), (('Sub',),), (('20th Century Fox de Argentina',),), (('Twentieth Century Fox Film Corporation',),), (('UGC-Fox Distribution (UFD)',),), (('PFC Vid\xc3\xa9o',),), (('Columbia TriStar Egmont Film Distributors',),), (('20th Century Fox Home Entertainment',),), (('Syrena Entertainment Group',),), (('AVA',),), (('Forum Cinemas',),)]
companies = map(first,companies)
如果要将其全部连接到一个字符串:

s = ",".join(companies)

如果您只寻找一个字符串作为输出,这应该可以:

str = ", ".join(["'"+company[0][0]+"'" for company in companies])