1.列表去重
1.
def func(list):
a = []
for i in list:
if i not in a:
a.append(i)
func([1,2,1,1,2,3,4,5])
2.
A = set(list)
2.把二维列表m行n列变成n行m列
'''
a = [[1,2,3], [3,2,1]]
b = [[1, 3], [2,2], [3, 1]]
'''
def func(list):
c = []
for i in range(len(list)[0]):
a = []
for k in range(len(list)):
a.append(list[k][i])
c.append(a)
return c
3.写一个函数,输入一个字符串,返回倒序排列的结果
输入:string_reverse('abcdef'), 返回:'fedcba',写出你能想到的多种方法
1).利用字符串本身的翻转
def string_reverse1(text='abcdef'):
return text[::-1]
2).把字符串变成列表,用列表的reverse函数
def string_reverse2(text='abcdef'):
new_text = list(text)
new_text.reverse()
return ''.join(new_text)
print(string_reverse2())
3).新建一个列表,从后往前取
def string_reverse3(text='abcdef'):
new_text = []
for i in range(1, len(text)+1):
new_text.append(text[-i])
return ''.join(new_text)
print(string_reverse3())
4).利用双向列表deque中的extendleft函数
from collections import deque
def string_reverse4(text='abcdef'):
d = deque()
d.extendleft(text)
return ''.join(d)
print(string_reverse4())
5).递归
def string_reverse4(text='abcdef'):
if len(text)<=1:
return text
else:
return string_reverse4(text[1:])+text[0]
print(string_reverse4())
7.按升序合并如下两个list,并去除重复的元素
list1 = [2,3,8,4,9,5,6]
list2 = [5,6,10,17,11,2]
1).最简单的方式用set
list1 = [2,3,8,4,9,5,6]
list2 = [5,6,10,17,11,2]
list3 = list1+list2
print(sorted(list(set(list3))))
2).递归
选一个中间数,然后一边是小的数字,一边是大的数字,然后再循环递归,排完序
list1 = [2,3,8,4,9,5,6]
list2 = [5,6,10,17,11,2]
import random
def qsort(L):
if len(L)<2:
return L
pivot_element = random.choice(L)
small = [i for i in L if i<pivot_element]
large = [i for i in L if i > pivot_element]
return qsort(small) + [pivot_element]+qsort(large)
def marge(list1, list2):
return qsort(list1+list2)
print(marge(list1, list2))
8.说出下面list1,list2,list3的输出值
def extendList(val, list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')
print('list1=%s' %list1)
print('list2=%s' % list2)
print('list3=%s'%list3)
# list1=[10, 'a']
# list2=[123]
# list3=[10, 'a']
def extendList(val, list=None):
if list is None:
list = []
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')
print('list1=%s' %list1)
print('list2=%s' % list2)
print('list3=%s'%list3)