## 算法
------
```python
def num():
return [lambda x: i * x for i in range(4)]
#return [lambda x i=i: i * x for i in range(4)]
#return (lambda x : i * x for i in range(4))
if __name__ == '__main__':
print([m(2) for m in num()])
```
两数之和
```python
def get_index_num(l, target):
"""
:param l: 传入的列表
:param target: 求下标值的和
:return: 值的下标
"""
num_index = {}
for i, num in enumerate(l):
num_index[num] = i
j = num_index.get(target - num)
if j is not None and j != i:
return [j, i]
if __name__ == '__main__':
l = [2, 7, 6, 9]
target = 9
g = get_index_num(l, target)
print(g)
```
判断字符串有无重复的字符
```python
def str(a):
"""
:param a: 要验证的字符串
:return: 返回的要求
"""
str = sorted(a)
length = len(a) - 1
for i in range(length):
if str[i] == str[i + 1]:
return False
return True
if __name__ == '__main__':
a = 'asda'
s = str(a)
print(s)
```
反转数字的三种情况
```python
def reveser_num(num):
"""
:param num: 要判断的数字
:return: 返回处理的结果
"""
if num == 0:
return num
elif num > 0:
return int(str(num)[::-1])
else:
return -reveser_num(-num)
if __name__ == '__main__':
num = 300
r = reveser_num(num)
print(r)
```
判断列表中重复的数字
```python
def get_num(li):
"""
:param li:要判断的列表
:return:返回有重复的数字
"""
lists = []
num_dict = {}
for i in li:
if num_dict.get(i, ''):
lists.append(str(i))
num_dict[i] = 1
lists = list(set(lists))
return '或'.join(lists)
if __name__ == '__main__':
li = [4, 3, 4, 5, 2, 3]
g = get_num(li)
print(g)
```
反转列表
```python
def reverse_list(l):
"""
:param l: 要操作的列表
:return: 返回结果
"""
new_list = []
for i in range(len(l)):
new_list.append(l[-i - 1])
return new_list
if __name__ == '__main__':
list = [1, 2, '', 9]
print(reverse_list(list))
```
实现字符串内部单个反转
```python
"Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
def reveser_str(s):
"""
:param s:要操作的字符串
:return:返回结果
"""
s = ' '.join(s.split(' ')[::-1])[::-1]
return s
if __name__ == '__main__':
s = "Let's take LeetCode contest"
print(reveser_str(s))
```
一个小球从一百米的地方下落 第十次的离地距离 和 总路程
```python
def ball(num):
"""
:param num: 第一次下落距离
:return: 返回第十次的总和
"""
num = 100
num2 = num/2
for i in range(1,11):
print(i)
num += 2 * num2
num2 /= 2
return num,num2
if __name__ == '__main__':
num = 100
print(ball(num))
冒泡排序
def Bubble(l):
"""
:params l:要操作的列表
:return: 返回排序的列表
"""
for i in range(len(l) - 1):
for j in range(len(l) - i - 1):
if l[j] > l[j + 1]:
l[j], l[j + 1] = l[j + 1], l[j]
return l
if __name__ == '__main__':
list = [1, 5, 6, 7, 9, 6, 3]
print(Bubble(list))
```