Python 笔试题

本文深入探讨了Python中实用的编程技巧,包括列表去重、矩阵转置、字符串逆序、列表合并及排序等核心操作的多种实现方式,旨在帮助读者提升编程效率和代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值