算法


 

 


"""
输出4个6
"""
def num():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in num()])

"""
将列表推导式[]变成(),相当于生成一个生成器,没有参数延时生效
输出:[0, 2, 4, 6]
"""
def num():
    return (lambda x:i*x for i in range(4))
print([m(2) for m in num()])


"""
在列表推导式中及时传参,i=i
输出:[0, 2, 4, 6]
"""
def num():
    return [lambda x,i=i:i*x for i in range(4)]
print([m(2) for m in num()])


 1 def get_index(nums, target):
 2     """
 3     :param nums:传的参数列表
 4     :param target:目标值
 5     :return:索引值列表
 6     """
 7     index_dict={
 8 
 9     }
10     for index,num in enumerate(nums):
11         tem=target-num
12         tem_index=index_dict.get(tem,'')
13         if tem_index:
14             print(tem_index,index)
15         else:
16             index_dict[num]=index
17 
18 if __name__ == '__main__':
19     pp = get_index([2, 4, 5, 8, 1, 11, 4, 15, 7], 9)
View Code
 1 class Feibonacci():
 2     def __init__(self,num):
 3         self.a=0
 4         self.b=1
 5         self.n=0
 6         self.num=num
 7     def __iter__(self):
 8         return self
 9     def __next__(self):
10         if self.n<= self.num:
11             f = self.b
12             self.a, self.b =self.b,self.a+self.b
13             self.n += 1
14             return f
15         else:
16             raise StopIteration
17 
18 b=Feibonacci(10)
19 
20 # print(list(b))
21 for i in b:
22     print(i)
斐波那契
 1 def uu():
 2     str='nsjadsabjkfas'
 3     b=set()
 4     for i in str:
 5         b.add(i)
 6     if len(b)==len(str):
 7         return True
 8     else:
 9         return False
10 a=uu()
11 print(a)
是否存在重复字母

 

1 a=100+sum([100*(0.5**i)  for i in range(0,9)])
2  print(a)
100米高小球掉落

 

1 json_array = [{"a":1, "b":2},{"a":3, "b": 1},{"a":2, "b": 1}]
2 y=sorted (json_array,key=lambda x: x['a'] )
3 print(y)
字典排序

sort 与 sorted 区别:

  1. sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  3. sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)
1 sorted(iterable[, cmp[, key[, reverse]]])
sorted用法

参数说明:

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数(python3中已被彻底移除),这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素(python2.4开始提供,之前采用cmp),只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。此函数将在每个元素比较前被调用。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
 1 def bubbleSort(arr):
 2     """
 3     :param arr:需要的列表
 4 
 5     """
 6     n = len(arr)
 7 
 8     # 遍历所有数组元素
 9     for i in range(n):
10 
11         # Last i elements are already in place
12         for j in range(0, n - i - 1):
13 
14             if arr[j] > arr[j + 1]:
15                 arr[j], arr[j + 1] = arr[j + 1], arr[j]
16 
17 
18 arr = [64, 34, 25, 12, 22, 11, 90]
19 
20 bubbleSort(arr)
21 
22 print("排序后的数组:")
23 for i in range(len(arr)):
24     print("%d" % arr[i])
冒泡排序

 

1 s = "Let's take LeetCode contest"
2 b=" ".join(s.split(' ')[::-1])[::-1]
3 print(b)
每个单词反转

 

 

posted @ 2020-07-06 12:47  ttoia  阅读(132)  评论(0编辑  收藏  举报