再一次认识列表推导式

列表推导式

第一次觉得列表推导式这么好用
今天写代码时遇到一个这种情况

1
2
3
4
5
6
if sys.argv[1] == '***' or sys.argv[1] == '***':
for x in read_txt(sys.argv[2])
..........................................
elif sys.argv[1] == '###' or sys.argv[1] == '###':
for x in nmap_xml(sys.argv[2])
..........................................

其实省略号的部分都是对x的操作,但是呢,x是从文本或者xml读取来的
我只是想先判断他来自于哪,是txt还是xml,然后对获取的x进行相关操作就行了
笨方法就是像上面那样每个条件下面都执行一遍
但是,我在想有没有一种可能,把两种情况获取的值,都放在一个列表里,比如url_list

1
2
3
4
5
if sys.argv[1] == '***' or sys.argv[1] == '***':
url_list = [x for x in read_txt(sys.argv[2])]
elif sys.argv[1] == '###' or sys.argv[1] == '###':
url_list = [x for x in nmap_xml(sys.argv[2])]
..........................................

那么下面的代码只针对于url_list这个列表进行相关操作就行了

Author: 1314mylove
Link: https://blog.1314mylove.com/2018/04/再一次认识列表推导式/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.