'''
第一题:去除列表中的重复元素
1.列表中的元素有重复,需要去掉重复元素
2.要求保留原来的元素顺序
3.不需要返回值,直接修改原列表即可
'''
def duplicate_removal(lt):
l = []
for i in lt:
if i not in l:
l.append(i)
lt.clear()
lt.extend(l)
# for i in l:
# lt.append(i)
print(lt)
lt = [1,2,3,4,8,5,5,6,2,1,2]
duplicate_removal(lt)
'''
第二题:计算字符串中所有数字的和
1.字符串中只有小写字母和数字
2.数字可能连续,也可能不连续
3.连续数字要当作一个数处理
如:12abc34de5f => 12 + 34 + 5 => 51
'''
s = '12abc34de5f'
def sum_of_num(s):
sum = 0
ret = ''
for i in range(len(s)):
if s[i].isdecimal() == True:
ret += s[i]
else:
ret += ''
l = ret.split('')
for i in l:
if i.isdecimal() == True:
sum += int(i)
return sum
print(sum_of_num(s))
'''
第三题:返回列表中的第二小的元素的下表
1.参数是一个列表,元素全部是整数
2.返回第二小的元素的下标
'''
def seconde_min(lt):
l = []
for i in lt:
l.append(i)
l.sort()
for i in range(len(lt)):
if i == l[1]:
return i
'''
第四题:写出冒泡排序函数,可以排序任意类型的元素,可以逆序
1.实现冒泡排序算法
2.可以排序任意类型的元素
3.能够通过参数设置进行逆序,默认升序
'''
def list_sort(lt,key = None,reverse = False):
n = len(lt)
if not reverse:
if key:
for j in range(n - 1):
if key(lt[i]) > key(lt[i + 1]):
lt[i],lt[i + 1] = lt[i + 1],lt[i]
else:
if key:
for j in range(n - 1):
for i in range(n - j - 1):
if key(lt[i]) < key(lt[i + 1]):
lt[i],lt[i + 1] = lt[i + 1],lt[i]
return lt
'''
第五题:自己实现一个字符串的find函数
1.在一个字符串中查找另一个字符串
2.找到了返回第一次出现的位置
3.没找到返回-1
4.参数s1为源字符串,参数s2为要查找的字符串
解题思路:切割代码s2,若能切割,则存在s1,其中第一段字符长度为s2所在位置
'''
#def index_of_str(s1,s2):
# if len(s2) != 0:
# if s2 in s1:
# return s1.index(s2)
# else:
# return -1
# else:
# return -1
def index_of_str(s1,s2):
if len(s2) != 0:
l = s1.split(s2)
if True:
return len(l[0])
else:
return -1
else:
return -1
s1 = 'abcdss12av123'
s2 = 'dss'
print(index_of_str(s1,s2))
随笔:不要拿自己的无知当个性!