开发者

List question in Python

Alright, so I have a list of 296 data points and four blank spaces. I cannot edit this list of data points. i have another list of 300 data points. I want to multiply the lists together, with python skipping multiplying the data points when a blank space shows up. Here's what the lists look like:

a = [[6], [7], [], [7]]
b = [[100], [200],开发者_高级运维 [300], [400]]

What sort of exception handling would I have to put in? My current code uses

for items in mathList:
  try:
      sumlist = [x * y for x,y in zip(grearp, rex)]
  except:
      print 'No data for',items


Is the length of both lists actually 300 then, with 0's or blank strings for the missing data points? If so, this should come close:

newList = [x[0] * y[0] if x else None for x, y in zip(l1, l2)]

-- Edited --

I realized I didn't review the sample data quite as well as I could've. As the inner list is empty it'll fail a truth test on its own, so just if x. Also, added indexing for the inner lists on x, y.


Think that you can also use something like this(code below will prepare lists to be the same size and then calculates '*' if both values present - otherwise include the only value exist):

from itertools import izip_longest

a = [[6], [7], [], [7]]
b = [[100], [200], [300], [400]]

newList = [[x[0] * y[0]] if x and y else (x or y) for x,y in izip_longest(a,b, fillvalue=[])]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜