python - 在循环中对列表列表应用条件并获取列表列表作为输出
问题描述
这段代码可以完成这项工作,但我不明白它是如何工作的。因为我每次在到达 list_output 之前都会重置 list_temp 的内容。为什么list_output最后不为空?
顺便说一句,有什么更好的编码方式?
list_input = [['url1','1. a','b','c'],['url2','1. d','f','g']]
list_output = []
counter = -1
for i in list_input:
list_temp = []
counter = counter + 1
list_output.append(list_temp)
for j in list_input[counter]:
if 'url' in j:
list_temp.append(j)
elif '1.' in j:
list_temp.append(j)
print(list_output)
>>>
[['url1', '1. a'], ['url2', '1. d']]
解决方案
list_temp = []
这条线做了两件事:
- 创建一个空
list
对象(我们称之为对象) - 使名称
list_temp
指向该对象(我们称其为名称)
list_output.append(list_temp)
此行将对象附加到输出列表。
下次发生这种情况时:
list_temp = []
分配了一个新对象,并将名称list_temp
改为指向这个新对象。之前创建的另一个对象保持不变。由于该对象已添加到输出列表中,因此它保留在那里。
希望这能消除混乱。list_temp
&[]
不是一回事。
推荐阅读
- python - 在 Jinja 2 中使用变量作为字典键
- r - 为什么`as.numeric(c(1, 1.0, "1.0", TRUE))`为`TRUE`元素返回`NA`?
- java - Java selenium - 第二种方法不包括在测试中
- python - 如何将“google.cloud.documentai_v1.types.document”对象转换为 json
- mysql - Pentaho Kettle (Spoon) - 从不同的表中删除记录
- android - 如何在没有 selinux 的情况下构建 android?
- radio - GNU Radio + HackRF: RuntimeError: firdes check failed: 0 < fa <= sampling_freq / 2
- pandas - 通过 Pandas 多索引数据框的索引层替换的大采样
- jquery - jQuery 横断。它选择另一个 div
- php - Laravel Eloquent 请求获取具有大多数共同类别的产品