在适当时扩展或追加Python列表

8 投票
3 回答
4959 浏览
提问于 2025-04-16 10:23

有没有简单的方法可以在X是字符串的时候把它加到列表里,而在X是列表的时候把它扩展到列表里?我知道可以简单地检查一个对象是字符串还是列表,但我在想有没有比这个更快的方法?

3 个回答

0

我觉得不是这样的。extend可以接受任何可迭代的东西作为输入,而在Python中,字符串和列表都是可迭代的。

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()

11

这段代码的意思是:如果你想把一个变量添加到列表中,首先要检查这个变量的类型。

第一行代码:mylist.extend( [x] if type(x) == str else x ),它的意思是:如果变量是字符串类型,就把它放进一个新的列表里,然后把这个新列表添加到mylist中;如果不是字符串,就直接把这个变量添加到mylist中。

第二行代码:mylist.extend( x if type(x) == list else [x] ),这行代码的意思是:如果变量是列表类型,就直接把它添加到mylist中;如果不是列表,就把它放进一个新的列表里再添加到mylist中。

总的来说,这两行代码都是在处理不同类型的变量,确保它们能正确地添加到列表中。

撰写回答