显然,我的代码有问题。我用python3.6.6shell运行下面的模块。我想检查lista\u list上是否存在大小为4的元素,并将它们复制到b\u list。只有一个这样的元素('3m7n'),但它被分解为其他4个元素('3','m','7','n')。为什么?你知道吗
a_list = ['2', '3m7n', '3', '17', None]
b_list = ['bat', 'zoo', 'next', 'pina', 'pinta']
for i in a_list:
if i==None:
pass
elif len(i)==4:
b_list.extend(i)
b_list
['bat', 'zoo', 'next', 'pina', 'pinta', '3', 'm', '7', 'n']
extend
需要一个列表append
需要一个元素append
将对象添加到列表的末尾,因为列表是可变的数据类型,所以可以附加到列表的末尾。extend
将iterable中的每个元素添加到列表的末尾。你知道吗您犯的错误是使用
str
序列扩展列表,如果要添加对象,请使用append:使用extend时出现的错误是,使用字符串扩展列表,然后将其视为iterable并遍历字符串的每个字符,类似于
for i in '3m7n': print(i)
。使用相同的上下文,但将循环中的每个项转换为list
,可以使用extend添加列表中的每个项:为了简单、易读和更高效,您可以使用列表理解来替换
for
循环:如果您观察到,它的工作原理与for循环完全相同,通过使用list对象扩展列表。你知道吗
相关问题 更多 >
编程相关推荐