在适当时扩展或追加Python列表
有没有简单的方法可以在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
中。
总的来说,这两行代码都是在处理不同类型的变量,确保它们能正确地添加到列表中。