python在适当的时候扩展或附加一个列表

时间:2011-01-21 15:55:29

标签: python

如果X是一个字符串,是否有一种简单的方法来附加列表,但如果X是一个列表,是否可以扩展它?我知道我可以简单地测试一个对象是字符串还是列表,但我想知道是否有比这更快的方法?

3 个答案:

答案 0 :(得分:6)

mylist.extend([x]如果type(x)== str else x)

或者如果你想要捕捉字符串以外的东西,反之亦然更安全:

mylist.extend(x if type(x)== list else [x])

答案 1 :(得分:0)

我不这么认为。 extend将任何iterable作为输入,字符串和列表是python中的迭代。

答案 2 :(得分:0)

buffer = ["str", [1, 2, 3], 4]
myList = []

for x in buffer:
    if isinstance(x, str):
        myList.append(x)
    elif isinstance(x, list):
        myList.extend(x)
    else:
        print("{} is neither string nor list".format(x))

更好的方法是使用try-except代替isinstance()