利用python列表推导式功能实现列表之间的元素运算

利用python列表推导式功能实现列表之间的元素运算

刚才想搜一下怎么实现两个列表中对应元素的相加运算,搜了一下,除了众所周知的循环算法外,没找到什么好办法。我突然灵光一现,能不能采用列表推导式中的变量作为元素下标来实现元素间的运算,试算了一下,通过,拿来与大家分享。

问题的提出

a = [1, 2, 3]
b = [4, 5, 6]
>>>print(a+b)
[1, 2, 3, 4, 5, 6]

怎么实现a+b=[5, 7, 9]?

问题的解决

利用列表推导式功能,将列表推导式变量作为列表元素的下标,实现了元素间的运算
代码如下:

a = [1, 2, 3]
b = [4, 5, 6]
c = [a[x]+b[x] for x in range(0,len(a))]
print(c)

结果如下:

>>> print(c)
[5, 7, 9]

应用举例

产生列表元素间运算的初衷是想实现url地址的拼接问题。把url地址分成几个列表,分别用列表推导式功能实现,然后用列表推导式功能实现拼接。
如果有如下url,page=m与area=n,m与n均取不同的数值,可以采用列表推导式功能实现多变量url网址的拼接,代码非常简洁高效。

http://www.abc.gov.cn/search.jspx?page=m&area=n

代码如下:

a = [1, 2, 3]
b = [30, 50, 70]
url_1 = ['http://www.abc.gov.cn/search.jspx?page='+str(x) for x in a]
url_2 = ['&area='+str(x) for x in b]
url = [url_1[x]+url_2[x] for x in range(0,len(a))]
print(url)

结果如下:

>>> print(url)
['http://www.abc.gov.cn/search.jspx?page=1&area=30', 'http://www.abc.gov.cn/search.jspx?page=2&area=50', 'http://www.abc.gov.cn/search.jspx?page=3&area=70']

你可能感兴趣的:(python,列表,url)