leetcode.1313 —— 解压缩编码列表(zip函数、Python中sum各种用法)

解法一

简单的进行遍历

class Solution:
    def decompressRLElist(self, nums: List[int]) -> List[int]:
    	ans = []
    	for i in range(len(nums)//2):
    		ans += [nums[2*i+1]] * nums[2*i]
    	return ans

解法二 (大神解法)

class Solution:
    def decompressRLElist(self, nums: List[int]) -> List[int]:
    	return ([j  for i, j in zip(nums[::2], nums[1::2]) for _ in range(i)])

zip函数中,第一个为奇数位列表,第二个为偶数位列表

注意一行两个for循环时,按顺序执行,即,后一个在前一个里面

解法三(大神解法)

class Solution:
    def decompressRLElist(self, nums: List[int]) -> List[int]:
    	return sum(([b]*a for a, b in zip(nums[::2], nums[1::2])), [])

跟第二种差不多,只不过使用了sum函数,这里的sum使用了列表相加

sum函数多种用法

连接型

列表相加

>>> sum(([1, 2], [3]), [])
[1, 2, 3]

元组相加类似

>>> sum(((1, 2), (5,9)), ())
(1, 2, 5, 9)

 计算总和后再加

>>> sum((1, 5, 7), 10)
23

numpy中用法

axis=0表示按列相加;axis=1表示按行相加

>>> import numpy as np
>>> a = [[1, 2, 3], [4, 5, 6]]
>>> np.sum(a)
21
>>> np.sum(a, axis=0)
array([5, 7, 9])
>>> np.sum(a, axis=1)
array([ 6, 15])
>>> np.sum(a, 1)
array([ 6, 15])
>>> np.sum(a, 0)
array([5, 7, 9])

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值