我有像这样的字符串变量或字符串列表变量(但不仅仅是我的三个代码):
a = 'apples'
b = 'pears'
c = ['grapes', 'bananas', 'kiwis']
有没有一种简单的方法可以将它们组合成一个大列表 ['apples', 'pears', 'grapes', 'bananas', 'kiwis']?我尝试了 a + b + c 但我得到了 TypeError: can only concatenate str (not "list") to str。字符串/列表出现的位置没有顺序。这一定是一个非常简单和愚蠢的问题,但我找不到答案 - 如果重复,我们深表歉意...
编辑:
澄清由于上面的例子被指出太微不足道:我有一个很大的变量列表,其中一些只是字符串,一些是字符串列表。它们没有排序,我想知道是否有一种简单的方法可以将它们组合起来,而无需手动查看哪些是字符串,哪些是列表,并在我的代码中分别处理变量。如果不可能,那也是一个答案。
请您参考如下方法:
是的,您可以创建一个新列表,在其中“解压缩”列表,并添加其他字符串元素,例如:
new_list = [a, b, <b>*c</b>]
如果要添加列表的元素,则需要在前面加上星号。
如果事先不知道列表是什么,我们可以检查它,然后解压缩这些列表,例如:
from itertools import chain
new_list = list(chain.from_iterable(
x if isinstance(x, list) else (x,) for x in [a, b, c])
)
