Python 将元组列表转换为字符串列表
所以我有一个元组列表,例如Python 将元组列表转换为字符串列表,python,Python,所以我有一个元组列表,例如[('GGG',),('AAA',),('BBB',)],我想把它转换成一个字符串列表:['GGG','AAA','BBB'] 我曾尝试将for循环与join方法一起使用,但无法使其工作。任何帮助都将不胜感激,谢谢 使用简单的列表理解: >>> my_list_of_tuples = [('GGG',), ('AAA',), ('BBB',)] >>> my_list_of_strings = [str(*x) for x in my
[('GGG',),('AAA',),('BBB',)]
,我想把它转换成一个字符串列表:['GGG','AAA','BBB']
我曾尝试将for循环与join方法一起使用,但无法使其工作。任何帮助都将不胜感激,谢谢 使用简单的列表理解:
>>> my_list_of_tuples = [('GGG',), ('AAA',), ('BBB',)]
>>> my_list_of_strings = [str(*x) for x in my_list_of_tuples]
>>> my_list_of_strings
['GGG', 'AAA', 'BBB']
使用简单的列表理解:
>>> my_list_of_tuples = [('GGG',), ('AAA',), ('BBB',)]
>>> my_list_of_strings = [str(*x) for x in my_list_of_tuples]
>>> my_list_of_strings
['GGG', 'AAA', 'BBB']
使用自
e、 g
输出
['GGG'、'AAA'、'BBB']
使用列表
仅允许打印输出。它强制立即计算从链.from\u iterable
返回的惰性对象。如果以后要在对象上迭代,则不需要它。使用from
e、 g
输出
['GGG'、'AAA'、'BBB']
使用
列表
仅允许打印输出。它强制立即计算从链.from\u iterable
返回的惰性对象。如果以后要在对象上迭代,则不需要它。有多种方法可以实现这一点。如果数组是z=[('GGG',),('AAA',),('BBB',)]
,那么:
1) 使用zip
:list(list(zip(*z))[0])
另外两个最近的答案写了其他的方法:)
此外,虽然没有人问我,但我对性能感兴趣,我想分享一个相当简单的基准测试的结果:
输入
@保罗·鲁尼
%timeit itertools.chain.from_iterable(z)
# 129 ns ± 2.52 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
@冷速
%timeit [x[0] for x in z]
# 254 µs ± 1.34 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
@这个
@精神病
%timeit [str(*x) for x in z]
# 809 µs ± 904 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
有多种方法可以实现这一点。如果数组是
z=[('GGG',),('AAA',),('BBB',)]
,那么:
1) 使用zip
:list(list(zip(*z))[0])
另外两个最近的答案写了其他的方法:)
此外,虽然没有人问我,但我对性能感兴趣,我想分享一个相当简单的基准测试的结果:
输入
@保罗·鲁尼
%timeit itertools.chain.from_iterable(z)
# 129 ns ± 2.52 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
@冷速
%timeit [x[0] for x in z]
# 254 µs ± 1.34 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
@这个
@精神病
%timeit [str(*x) for x in z]
# 809 µs ± 904 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
上面一个给出了字符串列表
上面给出了字符串列表您可以使用
itertools
chain
方法在python2
和python3
from itertools import chain
data = [('GGG',), ('AAA',), ('BBB',)]
for item in itertools.chain(*data):
print(item)
itertools.chain方法返回chain
对象,您可以得到
元素使用列出
或迭代
使用for
您只需使用在
python2
和python3
中测试的itertools
chain
方法即可
from itertools import chain
data = [('GGG',), ('AAA',), ('BBB',)]
for item in itertools.chain(*data):
print(item)
itertools.chain方法返回chain
对象,您可以得到
元素使用列出
或迭代
使用for
您可以使用
'isinstance
'或type()==tuple
方法,使用列表理解仅在一行中完成此工作:
print([j for i in your_list for j in i if isinstance(i,tuple)])
:)您可以使用
'isinstance
'或type()==tuple
方法使用列表理解只需一行即可完成这项工作:
print([j for i in your_list for j in i if isinstance(i,tuple)])
:)元组“[(GGG,),(AAA,),(BBB,)]”列表中的元素也是字符串吗?是的,是的,这是我的错误。我将更新这个问题。只需使用
itertools.chain.from_iterable
。没有人提到:[x[0]表示项目中的x]
我认为@mentalita或多或少地涵盖了这一点。元组列表中的元素也是字符串吗?[(GGG,),(AAA,),(BBB,)]`是的,这是我的错误。我将更新这个问题。只需使用itertools.chain.from_iterable
。没有人提到:[x[0]表示项目中的x]
我认为@mentalita或多或少涵盖了这一点。str
是一个不好的变量名。有一个内置的函数叫做that。希望他需要简单的逻辑来完成他的任务。无论如何,下次我也会处理变量名。str
是一个不好的变量名。有一个内置的函数叫做that。希望他需要简单的逻辑来完成他的任务。无论如何,下次我也会处理变量名。