Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表中的元组中删除逗号_Python_List_Python 3.x_Tuples - Fatal编程技术网

Python 从列表中的元组中删除逗号

Python 从列表中的元组中删除逗号,python,list,python-3.x,tuples,Python,List,Python 3.x,Tuples,我有元组列表 items = [('Abkhazian',), ('Afar',), ('Afrikaans',), ('Albanian',), ('Amharic',), ('Arabic',), ('Armenian',), ...] 你想成功吗 ['Abkhazian', 'Afar', 'Afrikaans', 'Albanian', 'Amharic', 'Arabic', 'Armenian', ... ] 目前我找到的唯一解决方案如下 items = [str[i] for

我有元组列表

items = [('Abkhazian',), ('Afar',), ('Afrikaans',), ('Albanian',), ('Amharic',), ('Arabic',), ('Armenian',), ...]
你想成功吗

['Abkhazian', 'Afar', 'Afrikaans', 'Albanian', 'Amharic', 'Arabic', 'Armenian', ... ]
目前我找到的唯一解决方案如下

items = [str[i] for item in items]
for i in range(len(items)):
    items[i] = items[i].replace("[","")
    items[i] = items[i].replace("(","")
    items[i] = items[i].replace("'","")
    items[i] = items[i].replace(",","")
    items[i] = items[i].replace(")","")
    items[i] = items[i].replace("]","")

我觉得应该有更好的方法

Hm,项目中没有逗号,只有一个元素元组

如果您不需要在列表中包含单个元素元组,而是将它们作为字符串条目,只需使用列表理解:

res = [item[0] for item in items] 
从原始列表中的每个元组中选择第一项

print(res)
['Abkhazian', 'Afar', 'Afrikaans', 'Albanian', 'Amharic', 'Arabic', 'Armenian']
事实上,使用@ShadowRanger的灵活解包替代方案,您确实可以获得不错的加速效果:

res = [item for item, in items]

可能看起来像一个输入错误,但它完成了任务。

Hm,项目中没有逗号,只有一个元素元组

如果您不需要在列表中包含单个元素元组,而是将它们作为字符串条目,只需使用列表理解:

res = [item[0] for item in items] 
从原始列表中的每个元组中选择第一项

print(res)
['Abkhazian', 'Afar', 'Afrikaans', 'Albanian', 'Amharic', 'Arabic', 'Armenian']
事实上,使用@ShadowRanger的灵活解包替代方案,您确实可以获得不错的加速效果:

res = [item for item, in items]

可能看起来像一个打字错误,但它完成了任务。

在更具python风格的方面,您可以解压缩列表:

items = list(list(zip(*items))[0])

在更具Python风格的方面,您可以解压缩列表:

items = list(list(zip(*items))[0])
没有花哨的东西,也没有看起来像打字错误的逗号


使用
zip
撤销单个元素
tuple
s不是“Pythonic”。它可以工作,但称之为Pythonic是一种延伸。使用
zip
撤消单个元素
tuple
s不是“Pythonic”。它可以工作,但称之为Pythonic是一种延伸。微小的变化(通过将更多的工作推到C层,可能会更快地用于大型输入,尚未测试):
从文件顶部的操作符import itemgetter
中,do
列表(map(itemgetter(0),items))
(可以省略Py2上的
列表包装)。或者是一种变体列表理解,它可以确保每个
元组中只有一个项,使用序列解包,
[项对项,项中]
;在Python3.5上测试了一个大约20%的低运行时间(Python中的索引速度惊人地慢),并且无论
项有多大或多小,它都应该更快。微小的变化(对于大输入,可以通过将更多的工作推到C层来更快,尚未测试):
来自文件顶部的操作符import itemgetter
,do
列表(映射(itemgetter(0),items))
(可以省略Py2上的
列表包装)。或者是一种变体列表理解,它可以确保每个
元组中只有一个项,使用序列解包,
[项对项,项中]
;测试表明,在Python3.5上运行时的速度降低了约20%(在Python中索引速度惊人地慢),并且无论
项有多大或多小,它都应该更快。