python遇到的问题01

主函数调用
class Solution:
    def generateParenthesis(self, n: int) :
        result = []
        self.back_tracking(n, result, 0, 0, "")
        return result

    def back_tracking(self, n, result, left, right, str):
        if right > left:
            return

        if left == n and right == n:
            result.append(str)
            return
        if left < n:
            self.back_tracking(n, result, left + 1, right, str + "(")
        if right < n:
            self.back_tracking(n, result, left, right + 1, str + ")")
if __name__ == '__main__':
    S = Solution()
    print(S.generateParenthesis(4))
    

和类对其 在类里方法调用别的方法 需要加:self.method()

主函数 调用方法 首先先调用类 S = Solution() 才能调用方法

  • // 向负无穷方向取整

    • print(3//2)
      
      1
      
  • 判断变量是否为None的判断,有三种主要的写法:
    
    第一种是 if x is None;
    
    第二种是 if not x:;判断 (not x)是否为真
    
    第三种是 if not x is None(这句这样理解更清晰 if not (x is None)) 
    
  • 在LeetCode中,TreeNode是经常用到的一个结构体,表示数据结构树(Tree)中的一个节点。其官方定义如下:
    
    public class pyTreeNode {
    
    int val;
    
    TreeNode left;
    
    TreeNode right;
    
    TreeNode(int x) { val = x; }
    
    }
    ————————————————
    版权声明:本文为CSDN博主「weixin_34230075」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_34230075/article/details/114210805
    
  • enumerate()方法

  • eq = ['one', 'two', 'three']
    for i, element in enumerate(seq):
         print i, element
        
        
        
    0 one
    1 two
    2 three
    
  • deque() 双向队列

Python中的标准库collections中有一个deque,该对象与list列表相似。这里的“双向”指的是deuqe的结构使用双向链表,它提供了两端都可以操作的序列,这意味着,我们可以在序列前后都执行添加或删除。大多操作与List相同,如访问元素,求序列长度等,同样deque序列中的元素类型也不唯一。
具有队列和栈的性质。相当于可以在两端操作的list。


创建双向队列

import collections
d = collections.deque()

append(往右边添加一个元素)


import collections
d = collections.deque()
d.append(1)
d.append(2)
print(d)

#输出:deque([1, 2])

appendleft(往左边添加一个元素)


import collections
d = collections.deque()
d.append(1)
d.appendleft(2)
print(d)

#输出:deque([2, 1])

import collections
d = collections.deque([])
d.append('a') # 在最右边添加一个元素
d.appendleft('b') # 在最左边添加一个元素
d.extend(['c','d']) # 在最右边添加所有元素
d.extendleft(['e','f']) # 在最左边添加所有元素
d.pop() # 将最右边的元素取出
d.popleft() # 将最左边的元素取出
d.rotate(-2) # 向左旋转两个位置(正数则向右旋转)
d.count('a') # 队列中'a'的个数
d.remove('c') # 从队列中将'c'删除
d.reverse() # 将队列倒序
f=d.copy()  # 复制队列
f.clear()  # 清空队列
  • float("inf")
# 正无穷
print(float("inf"))
print(float("inf")+1)
# 负无穷
print(float("-inf"))
print(float("-inf")+1)


  • choice() 函数

![截屏2022-08-30 下午3.47.50](https://raw.githubusercontent.com/aohongchang/iamge1/main/截屏2022-08-30 下午3.47.50.png)

截屏2022-08-30 下午3.47.50

截屏2022-08-30 下午7.55.06

  • range()参数

    for i in range(3,20,3):#从3到19。隔3个一打印
        list.append(i)
    print(list)
    
    
    
    [3, 6, 9, 12, 15, 18]
    
    
  • <<. >>

print(1<<2)#乘以2的幂

4

print(8>>2)#除以2的幂


2

  • reverse() 函数

对列表中的元素进行反序,即:list.reverse()

ans = [x for x in range(0,9)]
print(ans)
ans.reverse()
print(ans)
print(ans.reverse())



[0, 1, 2, 3, 4, 5, 6, 7, 8]
[8, 7, 6, 5, 4, 3, 2, 1, 0]
None
posted @ 2022-08-31 09:27  干饭人减肥魂  阅读(22)  评论(0)    收藏  举报